我正在尝试浏览文本文件,找到所有以'file ='开头的行。当我找到这些行时,我想删除点之间的所有文本,最后将其保存为新文件。
这样的线看起来像
文件= “图像&安培;!145.jpg”
我现在坚持到我所在的地方:
这是我到目前为止的代码:
import os
from os.path import basename
from re import sub
file_in = 'tex_file_01.txt'
file_out = 'tex_file_01_new.txt'
with open(file_in, 'r') as f_in:
with open(file_out, 'w') as f_out:
for line in f_in:
if 'file=' in line:
print 'found: ' + line
line_fix = sub('\..*?\.', '.', line)
print 'fixed: ' + line_fix
f_out.write(line.replace(line, line_fix))
上面的代码删除整个文件中的点之间的文本。
有什么想法吗?提前谢谢!
答案 0 :(得分:1)
试一试。我看到的错误是只编辑条件时进入的那部分。您正在编辑所有文件行。
import os
from os.path import basename
from re import sub
file_in = 'tex_file_01.txt'
file_out = 'tex_file_01_new.txt'
with open(file_in, 'r') as f_in:
with open(file_out, 'w') as f_out:
for line in f_in:
if 'file=' in line:
print 'found: ' + line
line_fix = sub('\..*?\.', '.', line)
else:
line_fix = line
print 'fixed: ' + line_fix
f_out.write(line.replace(line, line_fix))