如果已經提出類似的問題,我們抱歉 - 我的確搜索了一下,我可能錯過了一些東西,但在我看來,至少對於其他問題的答案並不是我想要的同一件事做。在原地修改文本文件的最佳方法是什麼?
我有一個文本文件,(姑且稱之爲「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