我正在试图弄清楚如何获取看起来像这样的数据:
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()
然后我知道我必须采用读取行并以我需要的格式重写它们,但我不知道如何为每行的每个元素执行此操作。
答案 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'
现在,您需要确定这是否是文件的最后一行。如果它是文件的最后一行,则需要附加"]"
,而如果它不是最后一行,则需要添加","
。
在文件的开头,您还需要添加"["
希望有所帮助