使用python查找文件夹中的最新文件
我已经搜索了这个问题的答案,但是答案仍然给了我一条错误信息,因为我必须提出一个新问题,所以我不能在那里提问。就这样 我需要我的python脚本来使用文件夹中的最新文件 我尝试了几种方法,目前代码如下所示:使用python查找文件夹中的最新文件,python,Python,我已经搜索了这个问题的答案,但是答案仍然给了我一条错误信息,因为我必须提出一个新问题,所以我不能在那里提问。就这样 我需要我的python脚本来使用文件夹中的最新文件 我尝试了几种方法,目前代码如下所示: list_of_files = glob.glob('/my/path/*.csv') latest_file = max(list_of_files, key=os.path.getmtime) 但代码失败,并有以下注释: ValueError:max()arg是一个空序列 有人知道为什么
list_of_files = glob.glob('/my/path/*.csv')
latest_file = max(list_of_files, key=os.path.getmtime)
但代码失败,并有以下注释:
ValueError:max()
arg是一个空序列
有人知道为什么吗?如果列表不是空的,应该可以,但似乎是空的。因此,首先通过打印列表或类似的方式检查列表是否为空 我测试了这段代码,效果很好:
import os
import glob
mypath = "C:/Users/<Your username>/Downloads/*.*"
print(min(glob.glob(mypath), key=os.path.getmtime))
print(max(glob.glob(mypath), key=os.path.getmtime))
导入操作系统
导入glob
mypath=“C:/Users//Downloads/*.*”
打印(最小值(glob.glob(mypath),key=os.path.getmtime))
打印(最大值(glob.glob(mypath),key=os.path.getmtime))
glob.glob
具有不匹配以开头的文件的限制
因此,如果您想匹配这些文件,您应该这样做-(假设目录中有.picture.png
)
此外,在对目录进行操作之前,检查目录中存在的文件数量也是一种理想的方法。错误告诉您,您的文件列表是空的,您可能需要提供完整路径或首先更改工作目录您使用的是哪种Python版本?哪个操作系统max
(和min
)有一种处理空列表的方法。但是在将list\u文件传递给max
之前,确保list\u文件不为空会更干净。谢谢,单独解释错误消息非常有用。它给了我一个解决问题的线索。我正在使用python 3.6。文件列表不应该是空的,而且路径就我所知是正确的,我必须去弄清楚为什么它返回一个空的文件列表。谢谢在执行max
之前打印出该变量,以查看它是否符合您的预期be@AntonvBR不,这将尝试从每个时间戳的max
中生成一个键,这没有多大意义,如果您试图获取数字而不是iterable的最大值,则max
将引发TypeError
。
import glob
glob.glob('.p*') #assuming you're already in the directory