我想根据我在本网站上无耻地找到的一些Python代码,在一个目录中找到最新文件的日期。函数在空序列上失败
def newest_file_in_tree(rootfnewer, extension=".avi"):
return max(
(os.path.join(dirname, filename)
for dirname, dirnames, filenames in os.walk(rootfnewer)
for filename in filenames
if filename.endswith(extension)),
key=lambda fn: os.stat(fn).st_mtime)
这可以工作,但在空目录上失败。
key=lambda fn: os.stat(fn).st_mtime)
ValueError: max() arg is an empty sequence
我承认我是一名Python初学者,最后一行是超出我的薪酬等级的。
任何人都可以建议我如何捕获错误并防止崩溃的功能?
@TimPietzcker YESSS!测试空列表的真实性。更新,谢谢。 –
我喜欢这个,因为它可以使代码更加清晰,并且清楚地了解发生了什么。 –
@TimPietzcker同意。一个更好的(尽管不太pythonic)解决方案将从该理解中去除嵌套循环! –