2012-08-27 28 views
0
#!/usr/bin/env python 
import os 
bashCommand = "gsettings set org.gnome.desktop.background picture-uri file:///home/{me}/autowallpaperchanger/" + pic_name 
print bashCommand 
os.system(bashCommand) 

打印結果來設置背景圖像:無法使用Python(2.7.3),bash和GNOME3

gsettings set org.gnome.desktop.background picture-uri file:///home/{me}/autowallpaperchanger/wallpaper-1252048.jpg 

複製和粘貼的打印結果到一個終端作出的改變成功,因此該命令是正確,但由於某種原因,os.system沒有正確處理請求。

謝謝!

編輯 完整的腳本: http://pastebin.com/bUKYYrn1

+1

蟒蛇是否運行作爲自己的用戶或調用用戶的ID下?在這裏黑暗中射擊,但也許這是你的麻煩來自哪裏? – chucksmash

+0

嘗試使用原始字符串bashCommand = r「...」 – Michal

+0

@Wysek:如果複製和粘貼輸出有效,這不是isuue。 Morover在字符串中沒有反斜槓,所以無論如何沒有原始字符串的原因。 –

回答

1

使用原始字符串作品。

#!/usr/bin/env python 
import os 
bashCommand = r"gsettings set org.gnome.desktop.background picture-uri file:///home/{me}/autowallpaperchanger/" + pic_name 
print bashCommand 
os.system(bashCommand) 

在Python做正確的做法是

from gi.repository import Gio 

SCHEMA = 'org.gnome.desktop.background' 
KEY = 'picture-uri' 

def change_background(filename): 
    gsettings = Gio.Settings.new(SCHEMA) 
    gsettings.set_string(KEY, "file://" + filename) 
    gsettings.apply() 

if __name__ == "__main__": 
    change_background("/home/{me}/autowallpaperchanger/pic_name")