Python OS X - 从文件中获取“添加日期”信息

3

大家好,这是我的第一篇帖子。

今天我开始在OS X上编写一些Python代码。

我注意到OS X有一个“添加日期”(date added),它是文件放入指定文件夹的时间。

我试图将该日期作为timestamp获取,但是没有一种类型可用。

我已经尝试了我知道的所有三种:

st = os.path.getctime('Untitled.gif')
st1 = os.path.getatime('Untitled.gif')
st2 = os.path.getmtime('Untitled.gif')

但是它们都没有展示我所需要的内容。 也许有一种方法可以从文件中获取所有元数据,然后只选择我需要的信息。

谢谢


类似的问题,但是在Mac终端中:如何在终端中访问“日期添加”文件 - Shahrokh Bah
3个回答

3
你可以通过subprocess调用mdls命令来获取此信息:
import subprocess
st = subprocess.check_output(["mdls", "-name", "kMDItemDateAdded", "-raw", "Untitled.gif"])

2

看起来 st_ctime (Unix 上最近元数据更改的时间) 是类 os.stat_result 提供的最接近 "添加日期" 的属性,有时对于某些文件它类似于 "添加日期",但是对于同一文件在另一时间却不是

import os
import datetime


st_result = os.stat('Untitled.gif')
ts = st_result.st_ctime
dt = datetime.datetime.fromtimestamp(ts)
print(dt)

示例输出:

2021-09-08 15:10:22.602768

如果我希望将st_ctime解释为“添加日期”,我应该手动检查它是否对所有预期的文件都正确地保持“添加日期”——例如,通过在终端中使用ls -ltc | head -n NUMBER_OF_LINES_I_WANT_TO_SEEctime对文件进行排序;然后将它们的顺序与以“添加日期”排序的finder中看到的顺序相对应。

0
尝试使用os.stat('Untitled.gif').st_birthtime。有关os.stat的更多信息可以在这里找到。

Birthtime是文件的创建日期,而不是添加到目录的日期。 - Miles

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