我最近开始编程,我想对文件进行排序,但最后,这段代码只返回一行,即使文本文件有65行......
f = open(".\\test.txt")
g, u = [], []
a = 0
for i, line in enumerate(f):
a += 1
if i%2 == 0:
g.append(f.readlines()[i])
print(i),
elif i%2 == 1:
u.append(f.readlines()[i])
print(i),
print(u),
print(g)
答案 0 :(得分:0)
你必须做
lines = f.readlines()
for i, line in enumerate(lines):
a += 1
if i%2 == 0:
g.append(lines[i])
print(i),
elif i%2 == 1:
u.append(lines[i])
print(i),
答案 1 :(得分:0)
open(filename)
为您提供了一个文件行的迭代器。读完所有行一次后,此迭代器将耗尽,因此在第一行之后对readlines
的任何后续调用将为您提供一个空列表。
演示:
>>> with open('testfile.txt') as f:
... a = f.readlines()
... b = f.readlines()
... a
... b
...
['hello\n', 'stack\n', 'overflow\n']
[]
答案 2 :(得分:0)
您的for
循环开始逐行读取文件。但随后它的内容将在一次readlines
调用中读取文件的其余部分;在那之后,没有什么可读的了!因此,您最终得到line
中的第一行和g
中的第二行,因为您只保留了readlines()
读取的其中一行。