在 python 中的目录中查找最新文件

Find the newest file in a directory in python

我正在尝试在目录中查找最新文件。但是,max() 返回一个 "max() arg is empty sequence error" 我什至尝试传递确切的路径而不是路径变量。

def function(path):
   max(glob.iglob('path\*.map'), key=os.path.getctime)
   ...

有什么想法吗?

您的代码完美运行:

您是否未满 windows?

否则是 / 而不是 \

max(glob.iglob('path/*.map'), key=os.path.getctime)

并确保您在正确的路径下。

在您的函数中,path 作为参数传入,但是,您的 glob 规范使用的是文字字符串 'path\*.map'。因此,除非您实际上有一个名为 path 的目录,其中包含 .map 个文件,否则 iglob() 将 return 一个空列表,并且 max() 将引发异常看。

相反,您应该将 path 变量的值替换为 glob 规范字符串:

glob.iglob(r'{}\*.map'.format(path))

现在,假设路径和 .map 文件确实存在,您可以找到最新的。

此外,您应该使用 os.path.join() 来构建 glob 规范。您的函数将如下所示:

def most_recent_map_file(path):
    glob_pattern = os.path.join(path, '*.map')
    return max(glob.iglob(glob_pattern), key=os.path.getctime)

os.path.join() 更可取,因为它将处理不同操作系统的不同路径分隔符 - \ 用于 Windows,/ 用于 *nix。