你好我是新来的python我有这个简单的代码来代替文本。 所有的链接都可以,但是我需要用引号替换-DeviceMap“32”的-Phsig 33部分,并用比前面少一个的数字替换。这很容易吗?你知道吗
import os
import shutil
os.chdir('C:\\konverze')
print(os.getcwd())
print (os.listdir())
shutil.copy2('C:\\konverze\EIO.CFG', 'C:\\konverze\EIO_konvertovane.CFG')
print ("kopírování File EIO.CFG bylo úspěšné")
s = open("EIO.CFG").read()
s = s.replace('-Unit', '-Device')
s = s.replace('-Type', '-SignalType')
s = s.replace('-Phsig', '-DeviceMap')
f = open("EIO_konvertovane.CFG", 'w')
f.write(s)
f.close()
TXT文件示例:
-Name "diSPARE00" -Type "DI" -Unit "SIM_BOARD" -Phsig 1
-Name "doMotOnState" -Type "DO" -Unit "DP_BOARD" -Phsig 33\
-Access "System"
-Name "doService" -Type "DO" -Unit "DP_BOARD" -Phsig 44 -Access "All"
期望结果:
-Name "diSPARE00" -SignalType "DI" -Device "SIM_BOARD" -DeviceMap "0"
-Name "doMotOnState" -SignalType "DO" -Device "DP_BOARD" -DeviceMap "32"\
-Access "System"
-Name "doService" -SignalType "DO" -Device "DP_BOARD" -DeviceMap "43" -Access "All"
非常感谢你的建议
以下是您的方法:
s.split(' ')
分割文本以获得数组arr
w = '"' + w + '"'
加引号" ".join(arr)
获取文本。你知道吗您可以将文本分成几行,并在每行中查找'-DeviceMap',然后将其后的数字替换为递减为1并用
"
包围的数字输出:
如果单词中“Phsig”后面可能有除小数以外的其他字符,您可以将其替换为零,如下所示:
'33\\'.replace('\\', '') # -> '33'
因此,在最后的代码中,我们将把引发错误的行更改为:
相关问题 更多 >
编程相关推荐