如何将数据格式化为python列表

时间:2014-06-02 17:14:47

标签: python text-processing

我正在试图弄清楚如何获取看起来像这样的数据:

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

从文件中看起来像:

[1, 2, 3, 4, 5,

6, 7, 8, 9, 10,

11, 12, 13, 14, 15,

16, 17, 18, 19, 20]

每一行代表数据文件中的一行,因此不应将起始格式与以下内容混淆:

1 2 3 4 5 6 7... 

原始数据包含在文件中,因此必须先将其读入,然后使用逗号和括号将其重写为新文件。我的出发点是首先阅读数据:

with open("data.txt","r") as data: lines = data.readlines()

然后我知道我必须采用读取行并以我需要的格式重写它们,但我不知道如何为每行的每个元素执行此操作。

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

>>> data = open('data.txt').read().split()
>>> data = [int(item) for item in data if item.isdigit()
>>> data
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

这将获取文件中的所有整数。如果您不在乎,只需删除第二行,然后拨打data = open('data.txt').read().split()

答案 1 :(得分:0)

您可以告诉Python按空格分割每一行,然后将结果元素与','像这样:

', '.join(line_in.split())

这将转换字符串,如:

'6 7 8 9 10'

在此:

'6, 7, 8, 9, 10'

现在,您需要确定这是否是文件的最后一行。如果它是文件的最后一行,则需要附加"]",而如果它不是最后一行,则需要添加","

在文件的开头,您还需要添加"["

希望有所帮助