我试图在一个目录中找到最新文件的日期,基于我在这个网站上不知羞耻地找到的一些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)
这是可行的,但在空目录下失败。在
^{pr2}$我承认我是Python初学者,最后一行远远超出了我的工资等级。在
有人能建议我如何捕捉错误并防止函数崩溃吗?在
您可以将这个可怕的python一行代码分成两行,以确保只有当您有一个非空的文件列表,从中选择最新的文件时,
max
才被调用:虽然没有@hiroprotopictor的解决方案那么漂亮,但更具可读性。在
^{} 有一个
default
关键字:如果iterable为空,则返回
default
。如果没有default
,这将引发一个ValueError
。在另一种方法是使用^{} 列出文件:
^{pr2}$或者用^{} 更简洁:
相关问题 更多 >
编程相关推荐