根据我在网上看到的内容,以下似乎是从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中有没有相应的内容?
答案 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()