我有这个工作代码:
S095 = 'S095'
E095 = 'E095'
DocLan = 'c:\DocLan.asc'
tempDocLan = open( DocLan, 'r+' )
for line in fileinput.input( DocLan ):
if fileinput.lineno() > 1:
LanNr = find_nth(line, "S095", 1), " - ",
line[find_nth(line, "S095", 1) + 5: find_nth(line, "S095", 1) + 14]
if LanNr > 10:
tempDocLan.write(line.replace(S095, E095))
else:
""
else:
tempDocLan.write(line)
tempDocLan.close()
我试图更改代码以添加第二个写操作:
for line in fileinput.input(DocLan):
if fileinput.lineno() > 1 :
LanNr = find_nth(line, "S095", 1), " - ",
line[find_nth(line, "S095", 1) + 5: find_nth(line, "S095", 1) + 14]
if LanNr > 10:
tempDocLan.write(line.replace(S095, E095))
# error here
tempDocLan.write(line[0:50])
else:
""
else:
tempDocLan.write(line)
tempDocLan.close()
在第一次写入中,我替换了E095的文本S095 在第二次写中我想剪切文本(已经是E095),但它不起作用。
我正在使用Python 2.7。
我举一个例子。 我有一个包含此内容的文件。
删除,S095 / 20140001,
删除,S095 / 20140002,
删除,S095 / 20140003,
删除,S095 / 20140004,
删除,S095 / 20140005,
删除,S095 / 20140006,
我想创建这个文件。
E095 / 20140001,
E095 / 20140002,
E095 / 20140003,
E095 / 20140004,
E095 / 20140005,
E095 / 20140006,
感谢您的帮助。
Romeu Klug
答案 0 :(得分:0)
这就是你想要做的一切,这很简单:
已经完成了。
with open("input_file.txt") as input_file, open("output.txt", "w") as output:
for line in input_file:
_, tag = line.split()
tag.replace("S", "E")
output.write(tag)