我试图在目录中找到最新的文件。但是,max()返回" max()arg是空序列错误"我甚至试过传递确切路径而不是路径变量。
def function(path):
max(glob.iglob('path\*.map'), key=os.path.getctime)
...
有什么想法吗?
答案 0 :(得分:2)
在您的函数中,path
作为参数传入,但是,您的glob规范使用文字字符串'path\*.map'
。因此,除非您实际上有一个名为path
的目录包含.map
个文件,iglob()
将返回一个空列表,max()
将引发您看到的异常。
相反,您应该将path
变量的值替换为glob spec string:
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为/
。