从空格和新行的文本文件中拆分数字列表,Python

时间:2015-03-11 02:10:06

标签: python

我正在尝试拆分在文本文件中排列的数字列表:

1 2

3 4

7 9

我能得到的最接近的是:

    for line in infile:
                nums = line.split()[0]
                print(nums)

但是这只会返回第一列...我还能在这里做些什么来确保数字由空格和新行分隔?

2 个答案:

答案 0 :(得分:1)

您是希望将所有数字作为一个列表还是列表列表?

由于split,默认情况下会将任意数量的空白视为分隔符,对于一个列表,只需执行

infile.split()

对于列表列表,其中每个列表是一行上的数字列表,请执行

[x.split() for x in infile.split('\n') if x != '']

这会按换行符('\ n')拆分文件,然后取每一行,如果它不为空(x!=''),则将其拆分。

例如,对于一个名为'test'的文件,

open('test').read().split()

>>> ['1', '2', '3', '4', '7', '9']

[ int(x) for x in open('test').read().split() ] # convert to integers

>>> [1, 2, 3, 4, 7, 9]

[ x.split() for x in open('test').read().split('\n') if x != '' ]

>>> [['1', '2'], ['3', '4'], ['7', '9']]

等等......

答案 1 :(得分:1)

data.txt中:

1 2
3 4
5 6 

代码:

numbers = []
for line in open("data.txt").readlines():
    numbers.extend([int(n) for n in line.split()])
print(numbers)

输出:

[1, 2, 3, 4, 5, 6]