我如何在Windows文件属性面板中访问标记属性?是否有可用的模块?大多数谷歌搜索都返回与媒体文件、文件访问时间相关的属性,但与元数据属性如标记、描述等相关的内容很少。
exif
模块能够访问更多属性,但仍然无法读取“标签”属性。
Description
-> Tags
属性。有一个专门满足我的需求的模块:IPTCInfo3。
import iptcinfo3, os, sys, random, string
# Random string gennerator
rnd = lambda length=3 : ''.join(random.choices(list(string.ascii_letters), k=length))
# Path to the file, open a IPTCInfo object
path = os.path.join(sys.path[0], 'DSC_7960.jpg')
info = iptcinfo3.IPTCInfo(path)
# Show the keywords
print(info['keywords'])
# Add a keyword and save
info['keywords'] = [rnd()]
info.save()
# Remove the weird ghost file created after saving
os.remove(path + '~')
我并不完全确定所谓的“ghost file”是什么或有何作用,因为它看起来就像是原始文件的精确复制,因为文件大小保持不变,但无论如何,我会将其删除,因为它对于我需要读写元数据的目的是完全无用的。
在设置关键词时,我注意到了一些奇怪的行为,比如有些关键词被吞噬到了文件里(文件大小发生了变化,我知道它们在那里,但Windows没有确认这一点),只有手动删除这些关键词后,它们才会突然重新出现。非常奇怪。
Get-ChildItem
(powershell)检查锁定文件。我还搜索了隐藏文件(-Hidden
)。什么都没有找到。我确实见过一些程序创建锁定文件,但它们通常是特定于实现的,不能一概而论地归因于Windows,就像你所说的那样。 - Xevion
XPKeywords
,IPTC:Keywords
和XMP:Subject
。XPKeywords
较少见,主要仅受Windows支持。大多数其他程序将支持IPTC:Keywords
和/或XMP:Subject
,通常在支持两者的情况下保持它们同步(例如Adobe Lightroom)。您可能需要了解一下PyExiftool,它是exiftool的包装器。 - StarGeek