包含特定字符的Python编辑行

时间:2015-11-09 16:22:10

标签: python python-3.x readlines

我想知道是否有办法编辑包含某些字符的文件的那些行。 像这样:

file.readlines()
for line in file:
    if 'characters' in line:
       file[line] = 'edited line'

如果重要:我正在使用python 3.5

2 个答案:

答案 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)