我正在尝试将包含以空格分隔的数字行的txt文件转换为列表中逗号分隔的数字,其中每一行都是使用Python 3的这些数字的新列表。
E.g。 txt文件包含
1 2 3 4 5
6 7 8 9 10
我想在python中使用它:
[1,2,3,4,5]
[6,7,8,9,10]
我似乎无法找到一个好的解决方案,我使用了numpy并获得了列表而不是逗号分隔,例如:
[[1 2 3 4 5],[6 7 8 9 10]]
以下是我使用过的示例代码并不是很有效:
import numpy as np
mymatrix = np.loadtxt('file')
感谢任何输入! (ps我是初学者,但想在我正在开发的程序中使用这些列表)
答案 0 :(得分:0)
以下使用普通的Python 3(没有NumPy)
# open file
with open('file.txt') as fp:
# 1. iterate over file line-by-line
# 2. strip line of newline symbols
# 3. split line by spaces into list (of number strings)
# 4. convert number substrings to int values
# 5. convert map object to list
data = [list(map(int, line.strip().split(' '))) for line in fp]
这提供了您正在寻找的结果:
>>> with open('data.txt') as fp:
... data = [list(map(int, line.strip().split(' '))) for line in fp]
...
>>> print(data)
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
答案 1 :(得分:0)
我很确定你的numpy代码工作得很好,你只是不习惯它为显示格式化数组。
也许这会给你的结果更像你期待的结果:
import numpy as np
mymatrix = np.loadtxt('file')
print (np.array_repr(mymatrix))