而不是調用命令行工具,請嘗試使用包含在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_string
和Client.set_string
)。
這聽起來像是一個更好,更清晰,更健壯/明智/乾淨的方法,用於我的gconf Python腳本。如果它能夠修復我的問題,請使用整數列表,字符串列表.. – Robottinosino 2013-04-23 05:25:02
字符串列表給我這個:,我不知道如何辨別整數列表等。例如:(如你使用gnome-terminal ..)global/active_encodings –
Robottinosino
2013-04-23 05:30:39
枚舉值是作爲全局變量提供的'gconf'模塊。所以你可以做'如果value.type == gconf.VALUE_STRING':...' – 2013-04-23 07:28:05