我想知道是否有办法编辑包含某些字符的文件的那些行。 像这样:
file.readlines()
for line in file:
if 'characters' in line:
file[line] = 'edited line'
如果重要:我正在使用python 3.5
答案 0 :(得分:1)
我认为你想要的是:
lines = file.readlines()
for index, line in enumerate(lines):
if 'characters' in line:
lines[index] = 'edited line'
您无法直接编辑文件,但您可以在原始文件上写出修改后的lines
(或者更安全,写入临时文件并在您验证后重命名)
答案 1 :(得分:0)
您可以使用tempfile.NamedTemporaryFile
创建一个临时文件对象,并使用shutil
模块在其中写入行,以使用您之前的文件替换临时文件。
from tempfile import NamedTemporaryFile
import shutil
tempfile = NamedTemporaryFile(delete=False)
with open(file_name) as infile,tempfile:
for line in infile:
if 'characters' in line:
tempfile.write('edited line')
else:
tempfile.write(line)
shutil.move(tempfile.name, file_name)