python os.path.getctime max 不返回最新的

标签 python linux date

我有两个文件,一个显然比另一个更新,但是按 os.path.getctime 排序时的 max 函数不返回最新的文件。

$ ls -lpat /foo.tar.gz
-rw-r--r-- 1 appsc appsc 29653389 May 21 15:05 /foo.tar.gz
$ ls -lpat /bar.tar.gz
-rw-r--r-- 1 appsc appsc 29653554 May 27 17:30 /bar.tar.gz
$ date
Wed Jun  4 01:23:29 UTC 2014
$ python3
Python 3.3.2 (default, Nov  6 2013, 12:16:42) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> compare = ['/bar.tar.gz', '/foo.tar.gz']
>>> print(max(compare, key=os.path.getctime))
/foo.tar.gz
>>> print(max(compare, key=lambda x: os.path.getctime(x)))
/foo.tar.gz
>>> 

一定有我遗漏的东西......

感谢帮助

最佳答案

我相信 ls -t 显示最后的 mtime 而不是最后的 ctime,这是您用作 key 的时间。尽管 mtime 和 ctime 相似,但它们并不完全相同——参见 Difference between python - getmtime() and getctime() in unix system供引用。

关于python os.path.getctime max 不返回最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24027633/

相关文章:

python - Python 的事件驱动 Web 框架

linux - 在脚本中调用 shell 脚本

linux - 我可以用 sed 匹配多行模式吗

javascript - 如何在javascript中以24小时格式比较2个时间

javascript - 如何使用javascript/react获取两个日期之间的完整日期?

python - Python 中的 CMAC-AES

python - 创建 Django JSONField 值的副本

c - 在 C/C++ 中创建 unix/linux 命令行工具的最佳实践是什么?

javascript - 如何在 Dojo 中从 UNIX 纪元毫秒字符串中获取日期?

python - 如何通过 pandas dataframe axis python 获取条形图