如何使用 PyGTK 将列表写入文件属性

How to write lists as a file attribute using PyGTK

Linux Mint 创始人的 comment 表示,可以通过编程方式访问较新版本的 Nemo 中的文件标志,如以下使用 Python 和 PyGTK 的示例所示:

import gio
file = gio.File("/home/guest/Documents/Todo")
emblems = file.query_info("metadata::emblems")
print emblems.get_attribute_as_string("metadata::emblems")

输出格式为

[emblem-important, emblem-urgent]

如您所见,存储为 metadata::emblems 的对象是一个列表(我猜是字符串)。但是,在 Gio.FileInfo 上的 PyGTK documentation 中,我找不到访问(读取或写入)数组类型属性的方法。

有什么方法可以做到这一点(即读取单个标志或以编程方式设置新标志)?如果是,我该如何实现?

奇怪的是没有方便的方法来做到这一点,但你可以直接调用 File.set_attribute,使用 STRINGV 作为类型。

f.set_attribute('metadata::emblems', gio.FILE_ATTRIBUTE_TYPE_STRINGV, ['emblem-important', 'emblem-urgent'])