Python获取文件夹最新CSV文件报错:ValueError: max() arg is an empty sequence
ValueError: max() arg is an empty sequence when trying to get latest CSV file
我之前尝试找这个问题的解决方案,但没法在原问题下追问,所以发起新提问。我需要写个Python脚本调用文件夹内的最新文件,当前用的代码是:
list_of_files = glob.glob('/my/path/*.csv') latest_file = max(list_of_files, key=os.path.getmtime)
但运行代码时出现错误提示:ValueError: max() arg is an empty sequence,请问报错原因是什么?
这个报错的原因很直接:你指定的路径/my/path/下没有找到任何.csv格式的文件,导致glob.glob()返回了一个空列表,而max()函数无法对空序列执行计算,于是抛出了这个ValueError。
你可以先做这几个排查来确认问题:
- 检查路径
/my/path/是否拼写正确,尤其是Linux/macOS系统要注意路径大小写敏感的问题 - 确认目标文件夹里确实存在后缀为
.csv的文件,别把.CSV或者其他类似后缀的文件当成标准.csv了(如果需要不区分大小写匹配,可以考虑用pathlib模块来实现更灵活的匹配逻辑) - 如果用的是相对路径,先确认脚本运行的当前工作目录是否符合预期,你可以在代码里加一行
print(os.getcwd())来查看当前路径
另外,为了避免后续再触发这个错误,建议在调用max()前先判断列表是否为空,比如修改代码为:
import glob import os list_of_files = glob.glob('/my/path/*.csv') if list_of_files: latest_file = max(list_of_files, key=os.path.getmtime) else: print("未找到任何CSV文件,请检查路径或文件是否存在")
内容的提问来源于stack exchange,提问作者Eles
相关产品推荐
相关产品推荐

