为什么我的代码没有读第一行?

Ric*_*lev 0 python io

with open('index.txt','r') as f:

    a = [int(x) for x in f.readline().split()] 
    array = []
    for line in f: 
        array.append([int(x) for x in line.split()])

print array[0]
print array[1]
print array[2]
print array[3]
print array[4]
Run Code Online (Sandbox Code Playgroud)

输入文件

0
0
100
200
1
101
201
2
102
202
3
103
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码

[0]
[100]
[200]
[1]
[101]
Run Code Online (Sandbox Code Playgroud)

刚刚0出现.

wnn*_*maw 5

问题是这一行:

a = [int(x) for x in f.readline().split()] 
Run Code Online (Sandbox Code Playgroud)

这会耗尽文件迭代器的第一行,所以当你循环遍历剩余的行时,你已经消耗了第一行.

要解决此问题,请删除此行代码,或者如果需要,生成文件内容列表(f.readlines())并遍历列表,或者在该行(f.seek(0))之后寻找文件start .请注意,如果您的文件特别大,f.readlines()应该避免,因为这会将整个文件带入内存.