您可以这样做:
[map(int,i.split()) for i in filter(None,open('abc.txt').read().split('\n'))]
逐行执行以获取更多信息
In [75]: print open('abc.txt').read()
3 2 7 4
1 8 9 3
6 5 4 1
1 0 8 7
split
带有换行符。
In [76]: print open('abc.txt').read().split('\n')
['3 2 7 4', '', '1 8 9 3', '', '6 5 4 1', '', '1 0 8 7', '']
删除不必要的空字符串。
In [77]: print filter(None,open('abc.txt').read().split('\n'))
['3 2 7 4', '1 8 9 3', '6 5 4 1', '1 0 8 7']
split
按空格分割
In [78]: print [i.split() for i in filter(None,open('abc.txt').read().split('\n'))]
[['3', '2', '7', '4'], ['1', '8', '9', '3'], ['6', '5', '4', '1'], ['1', '0', '8', '7']]
将该元素转换为int
In [79]: print [map(int,i.split()) for i in filter(None,open('abc.txt').read().split('\n'))]
[[3, 2, 7, 4], [1, 8, 9, 3], [6, 5, 4, 1], [1, 0, 8, 7]]
with
语句。它会自动在块结束时关闭文件对象。此外,您应该考虑使用更适合此情况的csv
模块。使用csv
读取文件,它将给您一个包含所有行拆分的可迭代对象。然后,list(reader_object)
将为您提供所需的结果。 - Mazdak