Python 编辑包含特定字符的行
Python edit line containing specific characters
我想知道是否有办法编辑文件中包含特定字符的那些行。
像这样:
file.readlines()
for line in file:
if 'characters' in line:
file[line] = 'edited line'
如果重要的话:我正在使用 python 3.5
我想你想要的是这样的:
lines = file.readlines()
for index, line in enumerate(lines):
if 'characters' in line:
lines[index] = 'edited line'
您不能直接编辑该文件,但您可以写出修改后的 lines
覆盖原始文件(或者,更安全的是,写入临时文件并在验证后重命名)。
您可以使用 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)
我想知道是否有办法编辑文件中包含特定字符的那些行。 像这样:
file.readlines()
for line in file:
if 'characters' in line:
file[line] = 'edited line'
如果重要的话:我正在使用 python 3.5
我想你想要的是这样的:
lines = file.readlines()
for index, line in enumerate(lines):
if 'characters' in line:
lines[index] = 'edited line'
您不能直接编辑该文件,但您可以写出修改后的 lines
覆盖原始文件(或者,更安全的是,写入临时文件并在验证后重命名)。
您可以使用 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)