Python:在默认图像查看器中打开多个图像

时间:2016-02-09 23:53:33

标签: python image python-imaging-library

我正在使用PIL在默认图像查看器中打开单个图像:

from PIL import Image
img = Image.open('example.jpg')
img.show() 

任何Python模块是否都包含在当前系统的默认图像查看器中启用打开多个图像的功能?例如,在OS X上,Preview.app应该打开,侧边栏中的图像列表。从命令行来看,这根本不是问题:

$ open my_picture_number_*

用例是用户应该只能探索几十个图像。

2 个答案:

答案 0 :(得分:5)

使用subprocess.run运行操作系统的默认图片查看应用。 subprocess.run很像命令行。您只需要知道该命令对您所使用的操作系统的影响。对于Windows," explorer"会做;对于OS X,正如你所指出的那样,它已经打开了。"我不确定Linux是什么,也许" eog"?

所以,你的代码看起来像这样:

import sys
import subprocess

def openImage(path):
    imageViewerFromCommandLine = {'linux':'xdg-open',
                                  'win32':'explorer',
                                  'darwin':'open'}[sys.platform]
    subprocess.run([imageViewerFromCommandLine, path])

答案 1 :(得分:0)

我尝试使用@jgfoot 的答案,该答案有效,但在查看器启动后使我的程序挂起。我已经通过使用 subprocess.Popen 解决了这个问题,就像这样:

import sys
import subprocess

def openImage(path):
    imageViewerFromCommandLine = {'linux':'xdg-open',
                                  'win32':'explorer',
                                  'darwin':'open'}[sys.platform]
    subprocess.Popen([imageViewerFromCommandLine, path])