当前位置: 首页 > 面试题库 >

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

虞正业
2023-03-14
问题内容

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

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

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


问题答案:

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


 类似资料:
  • 问题内容: 我知道文件的相对路径,并希望将其作为 Linux和Windows上的对象来处理。 在Java中指定平台无关路径的最佳方法是什么? 问题答案: 本类包含可用于特定平台的文件路径下面的公共成员: 系统相关的路径分隔符,为方便起见,用字符串表示。 系统相关的路径分隔符。 系统相关的默认名称分隔符,为方便起见,以字符串形式表示。

  • 问题内容: 如何在Python的app文件夹中使用文件?当然与平台无关…类似于以下内容: 问题答案: 您可以使用及其功能,这些功能负责特定于OS的路径: 在Windows上,它应该以反斜杠打印出来。

  • 问题内容: 除了匿名类()之外,有人可以建议在道德上等效的类也适用于Windows吗? 如果有人想知道“这是干什么的?” 我有一个程序可以对文件进行一致性分析。它具有“详细”选项。启用verbose选项时,我希望看到很多输出。该程序并不着急,它只是一个工具,因此,与其编写所有这些额外的语句来测试是否需要输出,我只是想在不需要时将其写入到位桶中。 问题答案: 您可以从Apache Commons h

  • 问题内容: 对于Windows,Process.platform返回“ win32”。在Windows上,用户的主目录可能是或C:\ Documents and Settings[USERNAME],具体取决于所使用的Windows版本。在Unix上,这不是问题。 问题答案: ,首选方法现在很简单: [原创答案] :为什么不在win32上使用环境变量?

  • 本文向大家介绍hadoop 相关的平台有哪些?相关面试题,主要包含被问及hadoop 相关的平台有哪些?时的应答技巧和注意事项,需要的朋友参考一下 现在普遍认为整个Apache Hadoop“平台”包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS)以及一些相关项目,有Apache Hive和Apache HBase等等。 Hadoop的框架最核心的设计就是:HDFS和

  • 问题内容: 如何在Java中获得平台相关的换行符?我不能到处使用。 问题答案: 除了line.separator属性,如果你使用的是Java 1.5或更高版本和的String.format(或其他格式化方法),可以使用在