是否有独立于平台的os.startfile()?

Lew*_*ick 22 python platform

我想在几个平台(包括Mac OS)上运行程序,所以我尽量保持它与平台无关.我自己使用Windows,我有一条线os.startfile(file).这适用于我,但不适用于其他平台(我在文档中读到,我没有自己测试过).

是否有适用于所有平台的等效产品?

顺便说一下,该文件是一个.wav文件,但我希望用户能够使用他们的标准媒体播放器,这样他们就可以暂停/回放文件.这就是我使用的原因os.startfile().我也许可以使用允许播放/暂停/倒带媒体文件的库.

use*_*342 46

看来,跨平台文件打开模块尚不存在,但您可以依赖流行系统的现有基础架构.这个代码片段涵盖了Windows,MacOS和类Unix系统(Linux,FreeBSD,Solaris ......):

import os, sys, subprocess

def open_file(filename):
    if sys.platform == "win32":
        os.startfile(filename)
    else:
        opener ="open" if sys.platform == "darwin" else "xdg-open"
        subprocess.call([opener, filename])
Run Code Online (Sandbox Code Playgroud)

  • @Lewistrick`os.remove`将适用于所有三个操作系统,所以我建议你坚持这一点.MacOS是大多数低级别的东西,靠近POSIX系统. (2认同)