【发布时间】:2012-12-16 19:17:35
【问题描述】:
如果我有这样的文本文件:
[001]This is line 1.
[002][too long]This is line 2 but it's Tooooo
oooo long!
[003]This is line 3.
我写了一个'for line in fileA'来读取这个文件,比如:
for line in fileA:
...
现在我需要在 line.find("[too long]")>=0 时合并当前行和下一行。 我该怎么办?
PS: 我写道:
for line in fileA:
if line.find("[too long]")>=0:
loc = fileA.tell()
fileB = open("file.txt") #open this file again
fileB.seek(loc)
line += fileB.readline().strip()
但它不起作用。为什么?
【问题讨论】:
-
您不能两次打开同一个文件,请发布错误消息/堆栈跟踪,“没有”到底是什么工作?您不太清楚自己要做什么,这阻碍了我们的帮助。
-
遍历行,维护一个缓冲区。当一行以
[...]开头时,产生并清除缓冲区的内容,然后追加新内容。当一行不是以[...]开头时,将其附加到缓冲区中。