2

私は Python を初めて使用し、背景を Nation Geographic Picture of the Day に変更するプログラムを作成しているときに問題に遭遇しました。jpegへのパスは問題なく取得できますが、コマンドを使用してデスクトップの背景を変更すると(Windowsの場合)、背景が真っ黒に変わります。コード自体はエラーをスローしません。私が望んでいたように機能していません。これがコードです。

import urllib2
import ctypes

SPI_SETDESKWALLPAPER = 20
url = urllib2.urlopen("http://photography.nationalgeographic.com/photography/photo-of-the-day/")
code = url.readlines()
pos = code[1303].split("\"",2)
imgurl = pos[1]
print imgurl
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, imgurl , 0)
4

2 に答える 2

2

画像へのパスではなく、set wallpaper コマンドに URL を渡しているようです。最初に画像を取得します。代わりにこのようにしてみてください。

import urllib2
import ctypes

SPI_SETDESKWALLPAPER = 20
url = urllib2.urlopen("http://photography.nationalgeographic.com/photography/photo-of-the-day/")
code = url.readlines()
pos = code[1303].split("\"",2)
imgurl = pos[1]

print imgurl
# Changes after here
url2 = urllib2.urlopen(imgurl)
out = open("wallpaper.jpg", "wb")
out.write(url2.read())
out.close()
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, "wallpaper.jpg" , 0)

私は実際にそれを試していません(Windowsで実行していません)ので、問題が解決するかもしれませんし、そうでないかもしれません!

PSは、URLを解析するための本当に壊れやすいコードですが、それを機能させるための称賛です!

于 2012-05-05T20:09:01.683 に答える