Python脚本测试最近修改的文件不一致的结果

2024-03-28 21:54:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在stackoverflow上找到了这篇文章,这正是我想要集成到我正在编写的一个更大的脚本中的内容:Find the newest folder in a directory in Python

我要检查最新的文件或文件夹,以便按如下方式修改脚本进行测试:

#!/usr/bin/env python3.1

import os

def allFilesIn(b='.'):
    result = []
    for d in os.listdir(b):
        bd = os.path.join(b, d)
    result.append(bd)
    return result

latest_subdir = max(allFilesIn('/tmp/testforlatest'), key=os.path.getmtime)

print(latest_subdir)

但我得到的结果如下:

^{pr2}$

有人能解释一下为什么会这样吗?我做错了什么。在

其他信息可能是:

> python3.1 --version
Python 3.1.3
> cat /etc/debian_version 
6.0.2

Tags: thepathin脚本内容osversionresult
1条回答
网友
1楼 · 发布于 2024-03-28 21:54:11

您的函数allFilesIn只返回os.listdir返回的最后一个文件,因为您将结果追加到for循环之外。你可能是这个意思:

def allFilesIn(b='.'):
    result = []
    for d in os.listdir(b):
        bd = os.path.join(b, d)
        result.append(bd)
    return result

顺便说一下,对于函数名per PEP8,最好使用小写和下划线。您还可以很容易地将函数压缩为列表理解:

^{pr2}$

相关问题 更多 >