用Python提取文件日期属性

1 投票
2 回答
1128 浏览
提问于 2025-04-18 11:02

我在Windows7上用Python处理一些记录的新名字...我的目标是把日期加到文件名里,格式是“..._YYYYMMDD.pdf”,就像下面描述的那样。

我在Windows资源管理器的“详细信息”视图中查看文件,确认了以下代码可以获取到"修改日期"。因为我处理的是原文件的副本,所以返回的值和"创建日期"也是一样的。

import time

print "created: %s" % time.ctime(os.path.getctime('23614 TO 23814 DOWNSTREAM.pdf'))

这段代码返回了

>>>created: Tue Jun 24 13:19:12 2014

但是...

我需要的是“日期”属性(文件上最早的时间戳),因为这才是报告真正的创建日期。有没有办法获取我想要的“日期”属性,而不是“创建日期”或“修改日期”?

我在这个论坛上还很新,不能自己回答自己的问题,但我还是想分享一下:

感谢Christian给我指明了方向。以下代码给了我正确的日期:

print "created: %s" % time.ctime(os.stat('23614 TO 23814 DOWNSTREAM.pdf')[-2])

'created: Mon Oct 31 13:51:14 2011'

而下面这段代码返回的是副本创建的日期:

print "created: %s" % time.ctime(os.path.getctime('23614 TO 23814 DOWNSTREAM.pdf'))

created: Tue Jun 24 13:19:12 2014

现在我只需要弄清楚怎么把它格式化成我想要的样子!

2 个回答

0

你打算在Windows系统还是Unix系统上运行它呢?因为这两种系统在底层调用操作系统的方式不同,所以表现也会有所不同。

在Windows上,我认为你的代码可以获取到文件的创建时间。

1

你需要使用文件的创建时间。这个创建时间需要你的文件系统支持,比如说 ext4。然后你可以用os.stat(path)来获取某个特定文件的创建时间。

你可以用stat命令来检查你的文件系统是否能访问创建时间。如果创建时间这一栏是空的,可以看看这篇文章

撰写回答