TL;DR: 获取 扩展属性,例如 MacOS 的“从哪里来”,例如pip-install pyxattr 并使用 xattr.getxattr("file.pdf", "com.apple.metadata:kMDItemWhereFroms")。
文件的扩展属性
这些extended file attributes 就像您在 MacOS(自 10.4 起)中的“从哪里来”存储文件系统未解释的元数据。它们适用于不同的操作系统。
使用命令行
您还可以使用以下工具在命令行上查询它们:
exiftool -MDItemWhereFroms -MDItemTitle -MDItemAuthors -MDItemDownloadedDate /path/to/file
xattr -p -l -x /path/to/file
MacOS 上很多attributes are displayed in property-list format,因此使用-x 选项来获得十六进制输出。
使用 Python
Ture Pålsson 指出缺少的链接关键字。此类常用且恰当的术语有助于搜索Python Package Index (PyPi):
通过关键字搜索 PyPi:扩展文件属性,元数据:
例如列出和获取属性使用(改编自pyxattr's official docs)
import xattr
xattr.listxattr("file.pdf")
# ['user.mime_type', 'com.apple.metadata:kMDItemWhereFroms']
xattr.getxattr("file.pdf", "user.mime_type")
# 'text/plain'
xattr.getxattr("file.pdf", "com.apple.metadata:kMDItemWhereFroms")
# ['https://example.com/downloads/file.pdf']
但是,您必须转换以 plist 格式存储的 MacOS 特定元数据,例如使用plistlib。
MacOS 上的文件元数据
Mac OS X 10.4 (Tiger) 引入了Spotlight 一个用于提取(或收集)、存储、索引和查询元数据的系统。它为搜索和索引提供了一个集成的系统范围的服务。
此元数据存储为具有keys prefixed with com.apple.metadata: 的扩展文件属性。例如,“来自”属性的键为 com.apple.metadata:kMDItemWhereFroms。
使用 Python
使用 osxmetadata 来使用类似 MacOS 的 md* utils 中的功能:
from osxmetadata import OSXMetaData
filename = 'file.pdf'
meta = OSXMetaData(filename)
# get and print "Where from" list, downloaded date, title
print(meta.wherefroms, meta.downloadeddate, meta.title)
另见