假设我有一个数据文件,里面有这个:
23 33 45
91 81 414
28 0 4
7 9 14
8 9 17
1 1 3
38 19 84
我怎样才能将它导入一个列表,以便每个单独的数字它自己的项目?
您可以使用 numpy loadtxt 将数据文件读取到 numpy 数组
from numpy import loadtxt
a,b,c = loadtxt("filename", usecols=(0,1,2), unpack=True)
输出
a = array([23, 91, 28, 7, 8, 1, 38])
您也可以使用 python 内置函数,如打开文件、拆分和读取行
with open('file.txt') as f:
for line in f:
a, b, c = map(int, line.split())
另一种方法是
file = open(filename)
file_data = file.readlines()
但是,输出将是一个字符串列表。也就是说,列表中的每个元素将代表文件中的一行。如果您使用上面的代码,输出将如下所示
file_data = ['23 33 45', '91 81 414', '28 0 4 ', '7 9 14', '8 9 17', '1 1 3', '38 19 84']
您可能希望它们转换为 float 或 int。你可以再次使用 numpy 的 fromstring 模块来做到这一点
from numpy import fromstring
data = [fromstring(i, dtype=float, sep=' ') for i in file_data ]
请注意,我在上面的代码中使用了列表推导(这比传统的 python for 循环要快。)