用Python提取文件日期属性
我在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 个回答
你打算在Windows系统还是Unix系统上运行它呢?因为这两种系统在底层调用操作系统的方式不同,所以表现也会有所不同。
在Windows上,我认为你的代码可以获取到文件的创建时间。
你需要使用文件的创建时间。这个创建时间需要你的文件系统支持,比如说 ext4。然后你可以用os.stat(path)来获取某个特定文件的创建时间。
你可以用stat
命令来检查你的文件系统是否能访问创建时间。如果创建时间这一栏是空的,可以看看这篇文章。