我们说我有一个具有这种结构的文本文件:
foo
bar
Important line
none
我想用多个列表元素替换none,因此文本文件如下所示:
foo
bar
Important line
E:\\gaz.txt
E:\\bar.txt
E:\\foo.txt
但是,原始文件包含几个 none
字符串,我只希望删除此字符串。
我可以在Important line
下添加列表元素,但我不知道如何在不直接调用行号的情况下正确删除none
字符串(文件名列表是动态的,因此会有所不同) :
import fileinput
files_txt = ['E:\\foo.txt', 'E:\\bar.txt', 'E:\\gaz.txt']
for line in fileinput.input('E:\\inputfile.txt', inplace=1):
print line,
if line.startswith('Important line'):
for filelist in reversed(files_txt):
print filelist
我找到了print line.replace("none", "files_txt"),
之类的内容,但这并没有正常工作(或者我只是不知道在哪里正确使用它)。
答案 0 :(得分:2)
尝试以下方法:
import fileinput
files_txt = ['E:\\foo.txt', 'E:\\bar.txt', 'E:\\gaz.txt']
should_skip_none = False
for line in fileinput.input('E:\\inputfile.txt', inplace=True):
if line.startswith('none') and should_skip_none:
should_skip_none = False
continue
else:
print line
if line.startswith('Important line'):
should_skip_none = True
for filelist in reversed(files_txt):
print filelist
答案 1 :(得分:0)
import fileinput
files_txt = ['E:\\foo.txt', 'E:\\bar.txt', 'E:\\gaz.txt']
for line in fileinput.input("E:\\inputfile.txt", inplace=True):
if line.startswith("none"):
print(line.replace("none", ''), end='')
elif line.startswith('Important line'):
print(line)
for filelist in reversed(files_txt):
print(filelist)
else:
print(line)