【问题标题】:Open File in Default Viewer From Python on Windows在 Windows 上从 Python 在默认查看器中打开文件
【发布时间】:2022-01-18 09:14:55
【问题描述】:

从 Python 脚本启动文件以在图形查看器中查看输出文件并让 python 脚本在不关闭查看器的情况下完成是一种常见用例。在 Ubuntu 等基于 Linux xdg 的系统上,您只需使用 os.system(f'xdg-open "{file}"')。但是在 Windows 上,这不起作用。

在 Windows 上,人们建议使用 start 命令,但这需要像 os.system(f'cmd /k start "{file}"') 一样通过 cmd.exe 调用。这仍然会将打开的进程绑定到 python 的进程,而当 Python 进程结束时,启动的查看器窗口将关闭。

如何在 Windows 中为文件启动默认查看器,例如 PDF 查看器,并在保持 PDF 查看器打开的同时允许 python 脚本退出?

请仅提供 Python 3x 兼容选项。

【问题讨论】:

    标签: python-3.x windows process launch viewer


    【解决方案1】:

    Explorer 可用作文件默认查看器的启动器。当与 subprocess.Popen 和 DETACHED_PROCESS 标志结合使用时,即使 Python 脚本退出,打开的窗口也会保持打开状态。

    import subprocess
    out_file = "c:\some\path\file.pdf"
    subprocess.Popen(["explorer", out_file],
          creationflags=subprocess.DETACHED_PROCESS)
    

    注意事项:

    • 确保out_file 是与Windows 兼容的路径。
    • subprocess.DETACHED_PROCESSWindows 唯一的功能

    【讨论】:

    • 像这样使用资源管理器确实有效,但它仅被记录为支持打开文件夹,文件上的 ShellExecute 将来可能会停止工作......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多