MATLAB读取同一文件夹下的dat文件,程序如下:
D = dir('C:\Users\x2018\Downloads\35PN440_No15_UM\*.dat');
for i = 1 : length(D)
load(['C:\Users\x2018\Downloads\35PN440_No15_UM\' D(i).name]);
end
此时,MATLAB输出了如下的变量:
以下相应的Python代码,用于加载指定文件夹中的所有 .dat
文件(应该是跟你的需求一致):
import os
folder_path = r'C:\Users\x2018\Downloads\35PN440_No15_UM' # 文件夹路径
for filename in os.listdir(folder_path):
if filename.endswith('.dat'):
file_path = os.path.join(folder_path, filename)
with open(file_path, 'r') as file:
# 执行需要的操作,这里暂时不做任何处理
pass
在上面的代码中,我们使用了 os.listdir()
函数来遍历指定路径下的所有文件和文件夹。然后,通过判断文件的扩展名是否为 .dat
,来确定是否为需要处理的文件。最后,我们使用 open()
函数打开文件,执行所需的操作。你可以根据具体的需求,在 with open
块内添加你需要的代码。如果对你有所帮助的话,请给我一个采纳,谢谢啦
代码如下:
import os
import numpy as np
dir_path = 'C:/Users/x2018/Downloads/35PN440_No15_UM/'
data = {}
for file_name in os.listdir(dir_path):
if file_name.endswith('.dat'):
file_path = os.path.join(dir_path, file_name)
with open(file_path, 'rb') as f:
d = np.fromfile(f, dtype=np.uint8)
data[file_name] = d
print(data)
解释:这段Python代码利用os
模块打开指定文件夹dir_path
下的所有文件(以.dat
文件为例),将其内容存储到data
字典对象中。其中file_name
作为字典的键名,d
为键值。因此最后输出的data
为一个字典对象,其中每个键都是一个文件名,对应的键值则是这个文件的内容。
MATLAB参考代码如下:
dir_path = 'C:\Users\x2018\Downloads\35PN440_No15_UM\';
data = containers.Map;
files = dir(fullfile(dir_path, '*.dat'));
for i = 1:length(files)
file_path = fullfile(dir_path, files(i).name);
fid = fopen(file_path, 'rb');
data(files(i).name) = fread(fid, [1, inf], 'uint8=>uint8');
fclose(fid);
end
variables = keys(data);
for i = 1:length(variables)
var_name = variables{i};
var_data = data(var_name);
% Do something with each variable here
end
解释:这段MATLAB代码借助dir
函数列出指定文件夹dir_path
下所有以.dat
结尾的文件,之后依次将这些文件的内容读入到以文件名为键的containers.Map
对象中。keys
函数可以返回Map
对象的键名列表,之后可以通过data(var_name)
来访问每个文件的内容。在实际使用中,可以根据需要对每个变量进行处理或者保存到其他格式的文件中。