【发布时间】:2014-02-21 08:01:44
【问题描述】:
我有一个可以在我的 PC 上正常运行的小程序,但我想让它便携。它的作用是从互联网上下载图像,设置为桌面背景,等待一分钟并更新图像。我知道我不能直接写入 appdata 之类的文件夹,因为我不知道使用计算机的人的用户名。我需要将下载的图像保存在某个地方,所以我会将它保存在 windows Temp 文件夹中。
我认为可以选择一些选项(但是我不知道如何在 python 中执行此操作)
- 使用类似
%temp%的方式访问该文件夹。 - 找出运行程序的人的用户名并插入到路径中
- 为用户名使用变量。
- 使用相对路径
我想尝试并且不必使用默认情况下不包含在 Python 3 中的另一个模块,因为我想稍后 cx_freeze 它。
import pythoncom
from urllib import request
from win32com.shell import shell, shellcon
from time import sleep
def get_image():
f = open('C:\\Users\\MyUser\\Desktop\\Python\\bg\\bg.jpg', 'wb') #Open old image
f.write(request.urlopen('blalbla.com/foo/img.jpg').read()) #Get new image and write
f.close()
pathtoimg = 'C:\\Users\\MyUser\\Desktop\\Python\\bg\\bg.jpg'
count = 0
while 1:
get_image()
iad = pythoncom.CoCreateInstance(shell.CLSID_ActiveDesktop, None,
pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IActiveDesktop)
iad.SetWallpaper(pathtoimg, 0)
iad.ApplyChanges(shellcon.AD_APPLY_ALL)
count += 1
print(count)
sleep(60)
【问题讨论】:
-
找到答案了!只要它让我回答我自己的问题就会发布。
标签: io path relative-path python-3.3 temp