如何用Python实现MATLAB读取多txt文件并分存数组的功能?
Python实现类似MATLAB的多TXT文件数据读取方案
对应MATLAB代码参考
% 用户原MATLAB实现代码 folder = 'your_folder_path'; fileList = dir(fullfile(folder, '*.txt')); x = []; y = []; for i = 1:length(fileList) filePath = fullfile(folder, fileList(i).name); data = load(filePath); if isempty(x) x = data(:, 1); end y = [y, data(:, 2)]; end
Python等价实现(基于Numpy)
用Numpy可以实现和MATLAB完全一致的数组结构,避免生成难以处理的庞大列表,代码逻辑对齐MATLAB:
import os import numpy as np # 替换为你的目标文件夹路径 folder_path = "your_folder_path" # 筛选文件夹下所有txt文件 txt_files = [os.path.join(folder_path, filename) for filename in os.listdir(folder_path) if filename.endswith('.txt')] # 初始化x和y数组 x = None y = None for file_path in txt_files: # 读取文件数据(默认空格/制表符分隔,可通过delimiter参数指定其他分隔符) data = np.loadtxt(file_path) # 初始化x为第一个文件的第一列 if x is None: x = data[:, 0] # 将当前文件的第二列作为新列拼接到y中 if y is None: y = data[:, 1].reshape(-1, 1) # 转为列向量再拼接 else: y = np.hstack((y, data[:, 1].reshape(-1, 1)))
关键说明
- 最终
x是一维Numpy数组,对应所有文件的第一列(需保证所有文件行数一致,否则会报错,和MATLAB逻辑一致) y是二维Numpy数组,每一列对应一个txt文件的第二列,结构和MATLAB的矩阵完全匹配- 如果文件使用逗号等其他分隔符,可修改
np.loadtxt参数,例如np.loadtxt(file_path, delimiter=',') - Numpy数组支持直接进行数值计算,比原生列表更适合后续数据处理操作
内容的提问来源于stack exchange,提问作者jimbob97
相关产品推荐
相关产品推荐

