python - 如何在 Python 的外部程序中打开文件?

标签 python

<分区>

我想知道如何根据文件的扩展名在记事本和图片查看器等程序中打开文件。我在 Windows 上使用 Python 3.3。

我做了一些研究,人们提到了一个名为 Image 的模块,但是当我尝试导入这个模块时,我得到了一个 ImportError。

这是我目前所拥有的:

def openFile():
    fileName = listbox_1.get(ACTIVE)
    if fileName.endswith(".jpg"):
        fileName.open()

我还会有需要在记事本中打开的 HTML 和 JSON 文件。

最佳答案

在 Windows 上你可以使用 os.startfile()使用默认应用程序打开文件:

import os
os.startfile(filename)

没有 shutil.open()这样就可以跨平台了。最接近的近似值是 webbrowser.open() :

import webbrowser
webbrowser.open(filename)

可能会在 OS X 上自动使用 open 命令,在 Windows 上使用 os.startfile(),在 Linux 上使用 xdg-open 或类似命令。

如果你想运行一个特定的应用程序,那么你可以使用 subprocess module例如,Popen() 允许在不等待程序完成的情况下启动程序:

import subprocess

p = subprocess.Popen(["notepad.exe", fileName])
# ... do other things while notepad is running
returncode = p.wait() # wait for notepad to exit

有很多方法可以使用subprocess 模块来运行程序,例如subprocess.check_call(command)。阻塞直到命令完成,如果命令以非零退出代码结束则引发异常。

关于python - 如何在 Python 的外部程序中打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054434/

相关文章:

python - 在python3中安装Gensim

python - 使用 aiohttp 的 HEAD 请求很慢

python - 如何在 PyQt5 中通过单击按钮将项目设置为正在编辑

python - 使用 pip 卸载 numpy 时权限被拒绝

python - 从各种数字范围的列表中找到所有可能的重叠和非重叠

python - Google 风格指南中的可选类型提示

python - 单击和 pylint

python - 将 `int *` 转换为 Cythonized 函数中的 Python 或 Numpy 对象

python - 根据之前的值循环一个函数?

python - Python 中的虚拟神经网络