我的意见是:
*PART, NAME=Part-Default
**
****************************** N O D E S *********************************
*NODE, NSET=ALLNODES
1, 2.228570e-02, -8.715290e-01
2, 1.463382e-02, -9.181792e-01
*INSTANCE, NAME=Part-Default_1, PART=Part-Default
*END INSTANCE
我想用Part-1替换Part-Default或Part-Default_1的所有字段。
输出应为:
*PART, NAME=Part-1
**
****************************** N O D E S *********************************
*NODE, NSET=ALLNODES
1, 2.228570e-02, -8.715290e-01
2, 1.463382e-02, -9.181792e-01
*INSTANCE, NAME=Part-1, PART=Part-1
*END INSTANCE
我建议:
lines = f.readlines()
i=0
while (i<len(lines)):
temp=lines[i].strip().split(',')
if (temp[1]=="NAME=Part-Default"):
f.write(""temp"\n")
temp[1]="NAME=Part-1"
if (temp[1]=="NAME=Part-1_1"):
temp[1]="NAME=Part-1"
f.write(""temp"\n")
if (temp[2]=="NAME=Part-Default"):
temp[1]="NAME=Part-1"
f.write(""temp"\n")
else
f.write(""temp"\n")
我不确定写命令。可能是我们可以以某种方式直接替换字符串。 问候
答案 0 :(得分:1)
您可以在整个文件上运行正则表达式替换。除非您正在处理真正庞大的文件,否则您不需要逐行执行此操作。
import re
filename = "xxx.txt"
with open(filename, "r") as f:
content = f.read()
new_content = re.sub(r"(\w+)=Part-(1(_1)?|Default(_1)?)", r"\1=Part-1", content)
with open(filename, "w") as f:
f.write(new_content)
答案 1 :(得分:0)
lines = f.readlines()
for line in lines:
line.replace("Part-Default_1", "Part-1").replace("Part-Default", "Part-1")
这将取代Part-Default_1的任何实例。如果你想更具体,那么你可以使用类似的东西:
lines = f.readlines()
for line in lines:
if line.find("$QUALIFIER"):
line.replace("Part-Default_1", "Part-1").replace("Part-Default", "Part-1")
请务必将$ QUALIFER更改为符合您要完成替换的行的内容。