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]
输入文件
0
0
100
200
1
101
201
2
102
202
3
103
当我运行我的代码时
[0]
[100]
[200]
[1]
[101]
出现第二个0
。
答案 0 :(得分:5)
问题是这一行:
a = [int(x) for x in f.readline().split()]
这会耗尽文件迭代器的第一行,所以当你遍历其余的行时,你已经消耗了第一行。
要解决此问题,请删除此行代码,或者如果需要,生成文件内容列表(f.readlines()
)并遍历列表,或者在该行之后回溯到文件开头(f.seek(0)
)。请注意,如果您的文件特别大,则应避免使用f.readlines()
,因为这会将整个文件存入内存。
答案 1 :(得分:0)
如果这个文件只是一个整数列表,那么numpy可能会提供一个更简单的解决方案:
import numpy
array = numpy.loadtxt('index.txt', dtype=int)