如何在Python中更新现有的文件行?如何更新python中的文件行
例如:我想更新session.xml
为sesion-config.xml
而不写新行。
输入A.txt
:
fix-config = session.xml
预计输出A.txt
:
fix-config = session-config.xml
如何在Python中更新现有的文件行?如何更新python中的文件行
例如:我想更新session.xml
为sesion-config.xml
而不写新行。
输入A.txt
:
fix-config = session.xml
预计输出A.txt
:
fix-config = session-config.xml
该解决方案@ TigerhawkT3建议将针对小型/中型文件工作的伟大。 对于非常大的文件,可能无法将整个文件加载到内存中,然后您想分别处理每一行。 沿着这些线应该工作:
import shutil
with open('A.txt') as input_file:
with open('temp.txt', 'w') as temp_file:
for l in input_file:
if l.startswith('fix-config'):
temp_file.write('fix-config = session-config.xml\n')
else:
temp_file.write(l)
shutil.move('temp.txt', 'A.txt')
不能突变在一个文本文件行 - 你必须写一个全新的线路,其中,如果不是一个文件的结尾,需要重写其余的部分。
要做到这一点,最简单的方法是将文件存储在一个列表中,对它进行处理,并创建一个新的文件:
with open('A.txt') as f:
l = list(f)
with open('A.txt', 'w') as output:
for line in l:
if line.startswith('fix-config'):
output.write('fix-config = session-config.xml\n')
else:
output.write(line)
有这个问题的确切副本[这里](http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a-file-in-python)。你怎么看? –
如果您看到流行的规范副本的常见问题,您可以对该问题进行投票或将问题标记为关闭。 – Jarvis
@贾维斯 - 这些都是真正熟悉的单词。 :P – TigerhawkT3
你想重写一行或重写整个文件? –
[在Python中搜索并替换文件中的一行]的可能重复(http://stackoverflow.com/questions/39086/search-and-re-place-a-line-in-a-file-in-python) –