如何在Python中关闭打开的图片?

时间:2014-07-24 08:05:15

标签: python

我使用这个python function使用python脚本打开图片:

import os
class ReadPicture:
    def readPicture(self):
        os.startfile('picture.jpg')
if __name__=='__main__':
    RP.ReadPicture()
    RP.readPicture()

使用Windows上的默认应用程序打开图像。你现在可以告诉我如何关闭打开的图片?谢谢你的任何建议。

为什么我不使用PIL?因为它不能做我想做的事:

  

当未指定操作或“打开”时,此操作如下   双击Windows资源管理器中的文件

是的,我想以双击行为打开图片。

2 个答案:

答案 0 :(得分:1)

我认为这是不可能的。 os.startfile()不返回任何内容,因此您无法找到启动的进程(有时,Windows可能会重用现有进程,因此终止进程会失去工作量。)

如果您希望能够使用图像关闭窗口,则需要使用PIL之类的框架加载图像,然后编写自己的UI以使用TkinterPyQt

另一种方法是查看pywin32,它可以让您访问Windows API。有了它,您可以在Python中重新实现os.startfile()。这样,您可以更好地控制子进程。

相关:

答案 1 :(得分:0)

#008_py_process_kill_proc_cmdline_dispaly
import os
pidl=[pid for pid in os.listdir('/proc') if pid.isdigit()]
print(pidl[-10:]) # pid_list recent 10 process from/proc directory
cnt=0
for pid in pidl:
    path_and_file_=os.path.join('/proc/', pid, 'cmdline')
    print(path_and_file)
    cmdf=open(path_and_file)
    cmdl=cmdf.readline() #read first one line in cmdline-file
    print('pid=',pid, 'cmdline=', cmdl)
    if(len(cmdl)>=6):
        if(cmdl[0]=='d' and cmdl[1]=='i'): # 'disply' image show() name
            os.system('kill -9 '+ pid)
            cnt +=1
print('killed total= %d'%cnt)