使用Python中的glob函数无法返回最新文件路径

3
我正在尝试监控日志文件夹。如果有新文件被创建,则必须返回文件路径。为此,我使用了以下代码:
import glob
list_of_files_in_real_predicted = glob.iglob(r'logging\real_predicted\*')
latest_file_in_real_predicted = max(list_of_files_in_real_predicted, key=os.path.getctime)
print(latest_file_in_real_predicted)

输出结果为:logging\real_predicted\log935.csv,而不是logging\real_predicted\log0.csv
下面是文件夹的快照,您可以看到最新创建的文件;
我的文件夹结构 请告诉我如何获取最新创建的文件。

3
截屏中显示的是“修改日期”,因此您需要使用“os.path.getmtime”来获取此值。 - Ghilas BELHADJ
2
我建议添加 os.stat('log0.csv')os.stat('log935.csv) 的输出,因为 os.path.getctime 在底层使用了 os.stat - mehdix
1个回答

3

getctimegetmtime 不同。在Windows中,你看到的(也是真正有用且广泛使用的)是修改时间。你需要:

latest_file_in_real_predicted = max(list_of_files_in_real_predicted, key=os.path.getmtime)

修改时间匹配文件内容的最后修改时间,这可能是为什么每个人都使用它的原因。

getctime甚至不是文件创建日期:

ctime表示inode最后一次被修改的时间

来源:Python中getmtime()和getctime()在Unix系统中的区别


好的,让我来看看。也许这就是我缺少的东西。 - Jaffer Wilson
1
它只能这样。 - Jean-François Fabre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接