如何确定运行Python脚本的操作系统是否类似于Unix?

时间:2013-08-27 18:32:16

标签: python unix

我正在尝试从Python脚本确定操作系统是否基于Unix。我可以想到两种方法,但它们都有缺点:

  • 检查platform.system()是否在("Linux", "Darwin")等元组中。这个问题是我不想提供每个类似Unix系统的列表,特别是有很多* BSD变种。
  • 检查函数os.fchmod是否存在,因为此函数仅在Unix上可用。这似乎不是干净或“Pythonic”的方式。

2 个答案:

答案 0 :(得分:7)

import sys
if 'win' in sys.platform():
    #windows
else:
    #not windows

或者,您可以尝试导入平台相关库

try:
    import windows_only as generic
except ImportException:
    try:
          import unix_only as generic
    except ImportException:
          import stdlib.module as generic

 print generic.common_function()

然后总是可靠的

>>> import os
>>> os.name
nt

答案 1 :(得分:6)

Pythonic的做法是不关心你所处的平台。

如果有多种不同的设施可以根据平台完成某些任务,那么在函数或类后面抽象它们,如果当前平台上没有该设施,它应该尝试设备并转移到另一个设施。