Python:断言我在POSIX上运行?

时间:2011-09-09 13:18:46

标签: python posix

我正在写一些特定于POSIX的代码,虽然我不支持其他平台,但我想确保他们在导入时得到一个很好的明确错误,而不是奇怪的错误,如果他们试图使用我的代码

有没有一种简洁的方法来检查?我想我可以import posix并抓住ImportError,但这似乎有些冗长。

3 个答案:

答案 0 :(得分:11)

看看os.name

  

导入的操作系统相关模块的名称。该   目前已注册以下名称:'posix','nt','os2',   'ce','java','riscos'。

如果您需要更精细的粒度,还有sys.platformos.uname()

答案 1 :(得分:3)

你可以:

def is_posix():
    try:
        import posix
        return True
    except ImportError:
        return False

您也可以解析sys.platformos.uname()[0],但我认为更自然地问“您的系统是否具有该功能”而不是“是您系统之一...,因为我知道他们现在有这个功能“。

答案 2 :(得分:0)

而不是import posix你应该导入os,所以你可以为用户提供一个可用的指令子集(但不是特定于posix的指令)然后你可以使用sys.platform功能检查用户的平台正在运行您的代码然后抛出异常:)