如何用Python读写表格/矩阵到文件?

4 投票
3 回答
48742 浏览
提问于 2025-04-17 15:17

我正在尝试创建一个程序,这个程序可以把数据放进一个2行10列的数字表格里,并把它保存到一个文本文件中。然后,程序还需要在以后的运行中能够取出这些信息。但是我对怎么做完全没有头绪。我查了一些简单的命令、常规的文件操作,还有一些制作表格的方法,但我似乎都没能成功。

这是我想要制作的表格的一个例子:

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

然后我会取出这些值。有什么好的方法可以做到这一点吗?

3 个回答

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的评论

3

numpy 应该就足够用了

table = np.loadtxt(filename)

这个会得到一个形状为 (2,10) 的数组。如果你想要把它转置,只需在闭合括号后面加上 .T 就可以了。

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" 就可以了。

撰写回答