如何在Matlab R2018a中获取按创建日期排序的Excel文件列表?
解决Matlab调用Python按文件创建日期排序xlsx文件的问题
错误原因分析
你写的代码存在两个核心问题:
- 路径拼接错误:Matlab中
[ad_dir '*.xlsx']会生成字符数组,而py.glob.glob需要传入单个合法的字符串路径,导致路径格式不被Python识别。 - Python函数参数传递错误:在Matlab中调用Python的
sorted函数时,不能直接把'key'、'reverse'作为位置参数传递,必须用pyargs指定关键字参数。否则py.os.path.getctime会被当成普通排序元素,而非提取排序键的函数,从而触发缺少filename参数的错误。
修正后的代码
ad_dir = 'C:\AT files\'; % 获取目标文件夹下所有xlsx文件的路径 file_list = py.glob.glob(strcat(ad_dir, '*.xlsx')); % 按文件创建日期降序排序(reverse=true为降序,改为false则升序) sorted_flist = py.sorted(file_list, pyargs('key', py.os.path.getctime, 'reverse', true));
额外适配(可选)
如果需要将Python列表转换为Matlab可直接操作的数组,可添加以下代码:
sorted_flist_matlab = cell(sorted_flist);
内容的提问来源于stack exchange,提问作者user2635886
相关产品推荐
相关产品推荐

