如果已经提出类似的问题,我们抱歉 - 我的确搜索了一下,我可能错过了一些东西,但在我看来,至少对于其他问题的答案并不是我想要的同一件事做。在原地修改文本文件的最佳方法是什么?
我有一个文本文件,(姑且称之为“Potatoes.txt”)包含以下信息:
Town 1,300,
Town 2,205,
Town 3,600,
Town 4,910,
Town 5,360,
我想要做的就是减少对某些城市的数量,并修改文本文件因此。 我做了一些研究,它似乎无法修改的文本文件,我需要的文本文件具有相同的名称,只是在其内部都有不同的价值观,所以目前我在做这个:
f = open("ModifiedPotatoes.txt","w")
f.close()
with open("Potatoes.txt","r") as file:
for line in file:
info = line.split(",")
if "Town 2" or "Town 4" in line:
info[1] -= 20
with open("ModifiedPotatoes.txt","a"):
infoStr = "\n" + ",".join(str(x) for x in info)
file.write(infoStr)
f = open("Potatoes.txt","w")
f.close()
with open("ModifedPotatoes.txt","r") as file:
for line in file:
with open("Potatoes.txt","a") as potatoesFile:
potatoesFile.write(line)
所以基本上我只是覆盖旧文件到一个空白的,然后从修改/临时文件复制值。有没有更好的方法来做到这一点我失踪了?
感谢您的帮助。
[Python:修改某些字符后的文本文件]可能的重复(http://stackoverflow.com/questions/19134163/python-modifying-text-file-after-certain-character)和[修改现有文本中的参数文件与Python](http://stackoverflow.com/q/17067573/62576)和许多其他(在这里搜索* python修改文本文件*)。 –
文件中的城镇的顺序是否重要?该文件有多大(我们可以将它全部装入内存)? –
不要忘记在'open'(“ModifedPotatoes.txt”,“r”)中使用'w'而不是'r'作为文件:' – Aidenhjj