0

我的桌面是 GNOME,我正在通过 Python 以编程方式更改其设置。

数据库具有简单的值类型,例如字符串、整数、字符串列表、整数列表……

操作数据的简单 CLI 工具是 gconftool-2,它使用--get选项返回键的值。

考虑到在将其设置回某个值时我需要知道该值,我不知道从这些值中推断出类型。请注意,在我的模式中,“8”是一个字符串,8 是一个 int,但它们都被 gconftool-2 输出为 8。

你会怎么做呢?

4

1 回答 1

2

gconf尝试使用GNOME Python 绑定中包含的模块,而不是调用命令行工具:

>>> import gconf
>>> client = gconf.Client()
>>> # Get a value and introspect its type:
>>> value = client.get('/apps/gnome-terminal/profiles/Default/background_color')
>>> value.type
<enum GCONF_VALUE_STRING of type GConfValueType>
>>> value.get_string()
'#FFFFFFFFDDDD'

对于列表,您可以自省列表值类型:

>>> value = client.get('/apps/compiz-1/general/screen0/options/active_plugins')
>>> value.type
<enum GCONF_VALUE_LIST of type GConfValueType>
>>> value.get_list_type()
<enum GCONF_VALUE_STRING of type GConfValueType>
>>> value.get_list()
(<GConfValue at 0x159aa80>, <GConfValue at 0x159aaa0>, ...)

但总的来说,您应该知道您正在操作的键的类型并直接使用适当的类型特定访问方法(例如Client.get_stringClient.set_string)。

于 2013-04-23T04:28:04.800 回答