栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Python中获取文件创建和修改日期/时间?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Python中获取文件创建和修改日期/时间?

以跨平台的方式获取某种修改日期很容易-只需调用,你就会获得Unix时间戳,该时间戳是文件的最后修改时间。

os.path.getmtime(path)path

另一方面,获取文件的创建日期是不固定的,并且依赖于平台,甚至在三大操作系统之间也有所不同:

Windows
上,文件的存储日期ctime(在
https://msdn.microsoft.com/zh-cn/library/14h5k7ff.aspx
中记录)。你可以通过
os.path.getctime()
或通过.
st_ctime
调用的结果属性在Python中进行访问
os.stat()
。在Unix 上一次更改文件的属性或内容的 Unix上,这将不起作用。
ctime

在Mac以及其他一些基于Unix的操作系统上,你可以使用.
st_birthtime
调用结果的属性
os.stat(
)。
Linux
上,当前是不可能的,至少没有为Python编写C扩展。尽管一些Linux常用的文件系统确实存储了创建日期(例如,
ext4
将它们存储在中
st_crtime
),但是Linux内核无法提供访问它们的方法;特别是从
stat()
最新的内核版本开始,它从C中的调用返回的结构不包含任何创建日期字段。你还可以看到,该标识符
st_crtime
当前在Python源代码中没有显示。至少在打开时ext4,数据会附加到文件系统中的
inode
上,但是没有方便的访问方法。

在Linux上,第二好的事情是

mtime
通过结果的一个
os.path.getmtime()
或两个.st_mtime属性来访问文件的
os.stat()
。这将为你提供最后一次修改文件内容的时间,这对于某些用例而言可能已足够。

综合所有这些,跨平台代码应该看起来像这样……

import osimport platformdef creation_date(path_to_file):    """    Try to get the date that a file was created, falling back to when it was    last modified if that isn't possible.    See http://stackoverflow.com/a/39501288/1709587 for explanation.    """    if platform.system() == 'Windows':        return os.path.getctime(path_to_file)    else:        stat = os.stat(path_to_file)        try: return stat.st_birthtime        except AttributeError: # We're probably on Linux. No easy way to get creation dates here, # so we'll settle for when its content was last modified. return stat.st_mtime


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号