4

我正在尝试创建一个程序,该程序获取数据并将其放入文本文件中仅包含数字的 2 x 10 表中。然后程序需要在以后的迭代中检索这些信息。但我不知道该怎么做。我一直在研究 numty 命令、常规文件命令以及尝试制作表格的方法。但我似乎无法让这些工作。

这是我正在尝试制作的表格的示例:

0    1    1    1    0    9    6    5
5    2    7    2    1    1    1    0

然后我会检索这些值。有什么好方法可以做到这一点?

4

3 回答 3

8

为什么不使用csv模块?

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

import csv

# write it
with open('test_file.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    [writer.writerow(r) for r in table]

# read it
with open('test_file.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    table = [[int(e) for e in r] for r in reader]

这种方法还有一个额外的好处,就是使文件可以被其他程序(如 Excel)读取。

哎呀,如果您真的需要空格或制表符分隔,只需添加delimiter="\t"到您的阅读器和编写器结构即可。

于 2013-02-08T21:06:52.460 回答
3

numpy应该够了

table = np.loadtxt(filename)

这将具有形状(2,10)。如果你想要它转置,只需.T在右括号后添加一个

于 2013-02-08T21:03:34.973 回答
1

一个接一个地处理这些行:

with open('filename') as f:
   for ln in f:
       a = [int(x) for x in ln.split()]

或者,生成一个二维数组:

with open('filename') as f:
   a = [[int(x) for x in ln.split()] for ln in f]

感谢 Ord 和 Francesco Montesano 的评论

于 2013-02-08T20:24:13.270 回答