我想替换包含patternB的行中的字符串,类似于:
发件人:
some lines
line contain patternA
some lines
line contain patternB
more lines
收件人:
some lines
line contain patternA
some lines
line contain patternB xx oo
more lines
我有这样的代码:
inputfile = open("d:\myfile.abc", "r")
outputfile = open("d:\myfile_renew.abc", "w")
obj = "yaya"
dummy = ""
item = []
for line in inputfile:
dummy += line
if line.find("patternA") != -1:
for line in inputfile:
dummy += line
if line.find("patternB") != -1:
item = line.split()
dummy += item[0] + " xx " + item[-1] + "\n"
break
outputfile.write(dummy)
它不会像预期的那样替换包含“patternB”的行,而是在它下面添加新行,如:
some lines
line contain patternA
some lines
line contain patternB
line contain patternB xx oo
more lines
我能用我的代码做什么?你知道吗
当然是这样,因为您在for循环的开头将行附加到dummy,然后在“if”语句中再次将修改后的版本附加到dummy。如果你像对待其他事物一样对待is,为什么还要检查模式A呢?你知道吗
最简单的方法是: 1将所有文件读入字符串 2呼叫字符串.替换 三。将字符串转储到文件
如果你想保持逐行迭代器 (对于大文件)
这比其他响应慢,但支持大文件处理。你知道吗
相关问题 更多 >
编程相关推荐