savetxt 和关闭文件 + python + numpy

3 投票
1 回答
4252 浏览
提问于 2025-04-18 07:41

我想请教一下,关于我在使用Python和NumPy的'savetxt'函数时遇到的一个问题,有没有人能帮我。

问题是:

(1) 我有一个子程序,用来把一个矩阵(数字数据)保存到一个文本文件里(使用savetxt函数):

比如:

import numpy as np
A = np.matrix('1 2; 3 4')
np.savetxt('myfile.txt', A, fmt='%-7.8f', delimiter=',')

(2) 然后,我需要在另一个程序中使用这些数据。这是一个时间域模拟,我需要在每次迭代时读取数据。我发现了以下几点:

  • 从我创建的文件中读取数据会让过程变得非常慢。

  • 有趣的是,如果我直接使用相同的数据(不通过我的子程序先保存),程序运行得很快。比如说,如果我保存了数据,程序就慢,但如果我重启电脑,程序又会变快。

也许在我后续使用文件时,它并没有被关闭。

如果有人能给我一些关于这个问题可能原因的线索,我将非常感激。

非常感谢。

哈维尔

1 个回答

1

我怀疑 savetxt 这个方法在结束时没有关闭文件。无论如何,为了确保文件被正确保存,你可以这样保存你的文件:

with open('myfile.txt', 'wb') as f:
    np.savetxt(f, A, fmt='%-7.8f', delimiter=',')

这样做的话,你就可以确保文件在之后被关闭了。

撰写回答