【发布时间】:2016-10-03 19:22:42
【问题描述】:
我正在尝试使用 glob 和 os 在目录中找到最新的 .zip 文件。有趣的是,我进行了以下设置,并且之前可以正常工作:
max(glob.glob('../directory/*.zip'), key=os.path.getctime)
现在运行这个让我 max() arg 是一个空序列,这是有道理的,因为当我尝试这个时:
glob.glob('../directory/*.zip')
它只返回一个空列表。使用完整路径也会给我一个空列表。尝试其他目录也会给我一个空列表。我对这里发生的事情感到非常困惑,因为这之前工作得很好。帮忙?
编辑:让它再次使用:
glob.glob(/Users/*/directory/*.zip)
【问题讨论】:
-
您使用的是相对路径,您确定它指向的目录与您假设的目录相同吗?
-
同意@alfasin。听起来您正在查找的目录中没有
.zip文件。作为一个测试,以确保无论如何都不会发生奇怪的事情,你可以尝试glob.glob('../directory/*')或glob.glob('*')。如果这些返回空列表,那么就会发生一些奇怪的事情。否则,您可能只是指向错误的目录,或者该目录中没有任何.zip文件。也尝试使用绝对路径。 -
如果你没有提到完整路径也失败了,我会假设你只是从不同的目录运行脚本。事实上,我只能假设您输入了错误的完整路径。
os.listdir('../directory/')的输出是什么? -
@alfasin 我也尝试过使用完整路径,但仍然返回一个空列表。 @elethan
glob.glob('*')完美运行 @chepner 我得到“没有这样的文件或目录”,但我知道这个目录存在,因为我可以导航到它 -
好吧,我使用
glob.glob(/Users/*/directory/*.zip)让它再次工作。我仍然不明白为什么它以前有效。
标签: python python-3.x glob