0

所以基本上我试图打开一个图像,然后在几秒钟后用 time.sleep 关闭它。首先我尝试使用

import Image
import time
myImage = Image.open("C:\\Users\\User\\Desktop\\image.jpg")
myImage.show()
time.sleep(5)

但这并不顺利,因为图像甚至没有打开,因为 Windows 照片查看器找不到文件。但是,当我像这样使用 webbrowser.open

import webbrowser
webbrowser.open('C:\\Users\\User\\Desktop\\image.jpg')
webbrowser.close()

它成功地在 Windows 照片查看器中打开了文件,但关闭似乎不起作用。它给了我以下错误:

AttributeError: 'module' object has no attribute 'close'

我一直在寻找 2 天现在没有有效的解决方案。图像是 .jpg 以防万一。此外,我不想更改我的默认图像查看器或修改其他使用它的人也必须修改的东西。使用 Python 2.7。

任何帮助将不胜感激!

4

2 回答 2

2

这是我在 windows_xp_sp3 中的做法。

导入操作系统,时间
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg"]
对于图片中的 p:
    os.startfile(p)
    时间.sleep(3)
os.system("taskkill /IM rundll32.exe")

或者,试试这个:

导入子流程,时间
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg","C:\\23. jpg","C:\\24.jpg","C:\\25.jpg","C:\\26.jpg","C:\\27.jpg"]
对于图片中的 p:
    r=subprocess.Popen(p,shell=True)
    时间.sleep(3)
# r.kill() #不起作用,因为设置了“shell=True”。如果你需要杀死“子进程”,就不要使用它。

像这样:

导入操作系统、子进程、时间
pic=["C:\\19.jpg","C:\\20.jpg","C:\\21.jpg","C:\\22.jpg","C:\\23. jpg","C:\\24.jpg","C:\\25.jpg","C:\\26.jpg","C:\\27.jpg"]

对于图片中的 p:
    r=subprocess.Popen(["rundll32.exe","shimgvw.dll,ImageView_Fullscreen",p])
    时间.sleep(3)
    r.kill()
于 2013-09-18T12:46:07.853 回答
0

您在这里走错了路,要关闭它,您必须指示浏览器关闭该选项卡或窗口或其他任何内容。

指示浏览器执行此操作的方法不是标准化的,对于每个浏览器或每个照片查看器都不同的东西也是如此。

如果您想控制照片的打开和关闭,最好在 Python 程序中执行此操作而不是调用其他程序(例如浏览器)。

于 2013-09-18T11:24:54.293 回答