Skip to main content
 首页 » 编程设计

python之使用 Python 2.7.3 的自动背景转换器不起作用,但它应该

2025年05月04日8hnrainll

总的来说,我是 Ubuntu/Python/Bash/Gnome 的新手,所以我仍然觉得我有可能做错了什么,但现在已经 3 天没有成功了......

这是脚本应该做的:
* [✓] 从 wallbase.cc 下载一张随机图片
* [✓] 将其保存到运行脚本的同一目录
* [x] 设为壁纸

有两次尝试使用不同的命令设置壁纸,但在脚本中都没有成功。有一个打印语句(从底部开始第二行)吐出正确的终端命令,因为我可以 C&P 打印结果并且它工作正常,它只是在脚本中执行时不起作用。

#!/usr/bin/env python 
import urllib2 
import os 
from gi.repository import Gio 
 
response = urllib2.urlopen("http://wallbase.cc/random/12/eqeq/1366x768/0.000/100/32") 
page_source = response.read() 
thlink_pos = page_source.find("ico-X") 
address_start = (page_source.find("href=\"", thlink_pos) + 6) 
address_end = page_source.find("\"", address_start + 1) 
 
response = urllib2.urlopen(page_source[address_start:address_end]) 
page_source = response.read() 
 
bigwall_pos = page_source.find("bigwall") 
address_start = (page_source.find("src=\"", bigwall_pos) + 5) 
address_end = page_source.find("\"", address_start + 1) 
 
address = page_source[address_start:address_end] 
 
slash_pos = address.rfind("/") + 1 
 
pic_name = address[slash_pos:] 
 
bashCommand = "wget " + page_source[address_start:address_end] 
os.system(bashCommand) 
 
print "Does my new image exists?", os.path.exists(os.getcwd() + "/" + pic_name) 
 
#attempt 1 
settings = Gio.Settings.new("org.gnome.desktop.background") 
settings.set_string("picture-uri", "file://" + os.getcwd() + "/" + pic_name) 
settings.apply() 
 
#attempt 2 
bashCommand = "gsettings set org.gnome.desktop.background picture-uri file://" + os.getcwd() + "/" + pic_name 
print bashCommand 
os.system(bashCommand) 
settings.apply() 

请您参考如下方法:

您已成功更改设置,但仍未应用,请尝试下一步:

settings.apply() 

设置“picture-uri”字符串后。