【发布时间】:2013-11-11 01:34:19
【问题描述】:
我有两个文本文件(A 和 B),如下所示:
A:
1 stringhere 5
1 stringhere 3
...
2 stringhere 4
2 stringhere 4
...
B:
1 stringhere 4
1 stringhere 5
...
2 stringhere 1
2 stringhere 2
...
我要做的是读取这两个文件,而不是像这样的新文本文件:
1 stringhere 5
1 stringhere 3
...
1 stringhere 4
1 stringhere 5
...
2 stringhere 4
2 stringhere 4
...
2 stringhere 1
2 stringhere 2
...
使用 for 循环,我创建了函数(使用 Python):
def find(arch, i):
l = arch
for line in l:
lines = line.split('\t')
if i == int(lines[0]):
write on the text file
else:
break
然后我这样调用函数:
for i in range(1,3):
find(o, i)
find(r, i)
发生的情况是我丢失了一些数据,因为读取了包含不同数字的第一行,但它不在最终的 .txt 文件中。在这个例子中,2 stringhere 4 和 2stringhere 1 丢失了。
有什么办法可以避免这种情况吗?
提前致谢。
【问题讨论】:
-
什么是拱门?它是一个文件对象,还是一个列表,还是什么?
-
它是一个文件对象。 (.txt)
-
标题编号是单调递增的(一直递增还是一样)?
-
是的,第一个数字是单调递增的,但最后一个数字是随机的。
-
问题是
for line in l:不是每次都从文件的开头开始,而是从你离开的地方开始。最好的办法是先将文件读入列表,然后处理顺序。