我想用变量的值替换文件中的特定字符串:
在我的文件中有以下两行:
<CtrlSum>10</CtrlSum>
<sum>45</sum>
我想搜索值“10”并将其替换为“45”
我试过这样的方法:
with open(path,'r+') as f:
lst=f.readlines()
for j in lst:
if'sum' in j:
Somme = j.split('>')[1].split('<')[0]
print(Somme)
for i in lst:
if 'CtrlSum' in i:
Ctrl = i.split('>')[1].split('<')[0]
print (Ctrl)
f.writelines(f.replace(Ctrl,Somme))
但我有一个错误:
f.writelines(f.replace(Ctrl,Somme)) AttributeError: '_io.TextIOWrapper' object has no attribute 'replace'
什么地方出了问题,我该如何解决
replace()函数只能用于字符串。 你的f不是字符串,而是文件本身。您需要调用f.read()以获取作为字符串的文件内容,并在此基础上调用replace()
编辑:选中此链接,它说明了在文件上写入的不同方法:)
https://pythonexamples.org/python-replace-string-in-file/
您可以简单地执行以下操作:
不需要
readlines()
或writelines()
或任何循环。只需用.read()
->;处理it->write()
使用XML解析
输出
相关问题 更多 >
编程相关推荐