是否有与os.startfile()无关的平台无关项?

发布于 2021-01-29 18:41:19

我想在多个平台(包括Mac
OS)上运行程序,所以我尝试使其尽可能独立于平台。我自己使用Windows,并且一行os.startfile(file)。这对我有效,但在其他平台上无效(我阅读了文档,但尚未为自己进行测试)。

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

顺便说一句,该文件是一个.wav文件,但是我希望用户能够使用其标准媒体播放器,以便他们可以暂停/倒带该文件。这就是为什么我使用os.startfile()。我也许可以使用允许播放/暂停/快退媒体文件的库。

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    似乎还没有跨平台文件打开模块,但是您可以依靠流行系统的现有基础结构。该代码段涵盖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])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看