在Python中,是否可以将自定义属性/元数据添加到文件中? 例如,我需要添加“FileInfo”作为文件的新属性。 我需要一种适用于各种文件格式的方法
答案 0 :(得分:2)
执行此操作的简单方法是将新属性添加到文件对象实例。例如,
new[]
<强>输出强>
with open('qdata') as f:
f.fileinfo = {'description': 'this file contains stuff...'}
print(f.fileinfo)
或者,通过派生io
模块中定义的一个类来创建自己的文件对象。
答案 1 :(得分:0)
您可以使用extended file attributes,这是一种文件系统功能,可以满足您的所有需求:将自定义元数据存储在文件中。
在Python中,这是由os
模块通过setxattr()
和getxattr()
函数实现的。
import os
os.setxattr('foo.txt', 'user.bar', b'baz')
os.getxattr('foo.txt', 'user.bar') # => b'baz'
请注意,您必须在xattr值前面加上"user."
,否则可能会引发OSError
。
不幸的是,此功能仅在Linux系统上可用。