我编写了一个python脚本,它从txt文件中读取并执行基本任务,如添加新行,删除和编辑现有行。对于删除和编辑,我使用“readlines()”将整个文件作为列表加载,然后使用编辑列表覆盖文件。这增加了数据丢失的可能性。所以我的问题是,如果我可以编辑txt文件而不覆盖它们?
答案 0 :(得分:4)
传统解决方案是将原始文件复制到.sav
文件,然后将新编辑的版本写入原始文件名:
>>> import os
>>> filename = 'somefile.txt'
>>> with open(filename) as f:
lines = f.readlines()
>>> basename, ext = os.path.splitext(filename)
>>> savefile = basename + '.sav'
>>> os.rename(filename, savefile)
>>> lines = map(str.upper, lines) # do your edits here
>>> with open(filename, 'w') as f:
f.writelines(lines)