GNOME配置数据库类型推断

时间:2013-04-23 03:35:56

标签: python gnome gconf

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

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

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

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

你会怎么做呢?

1 个答案:

答案 0 :(得分:2)

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

>>> 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)。