我们需要在python中使用open来关闭文件吗?

时间:2015-12-29 02:27:30

标签: python matlab file numpy

根据我在网上看到的内容,以下似乎是从python中包含整数数据的二进制文件中读取数据的示例:

in_file = open('12345.bin', 'rb');
x = np.fromfile(in_file, dtype = 'int32');

在Matlab中,我认为相应的命令是:

in_file = fopen('12345.bin', 'rb');
x = fread(in_file, 'int32');
fclose(in_file);

在Matlab中,文件应在完成使用后使用fclose关闭。 NumPy中有没有相应的内容?

2 个答案:

答案 0 :(得分:8)

python等价物是in_file.close()。虽然关闭你打开的任何文件总是很好的做法,但是python稍微宽容一点 - 它会在你的函数返回时自动关闭所有打开的文件处理程序(或者当你的脚本完成时,如果你在函数外面打开一个文件)。

另一方面,如果你喜欢使用python的嵌套缩进范围,那么你可以考虑这样做(从python 2.7开始有效):

with open('1234.bin', 'rb') as infile:
    x = np.fromfile(infile, dtype='int32')
# other stuff to do outside of the file opening scope

编辑As @ShadowRanger pointed out CPython会在function-return / end-of-script中自动关闭文件处理程序。其他版本的python也会这样做,但不是以可预测的方式/时间

答案 1 :(得分:1)

您需要关闭已打开的文件:

f=open('file')
f.close()