我试图从Python脚本中判断操作系统是否基于Unix。我可以想出两种方法来做到这一点,但这两种方法都有缺点:
platform.system()是否在元组中,如("Linux", "Darwin")。问题是,我不想提供每个Unix类系统的列表,特别是有许多*BSD品种。os.fchmod是否存在,因为此函数仅在Unix上可用。这看起来不像是一种干净的或“毕达克”的方式。发布于 2013-08-27 18:37:01
要做到这一点,毕达通的方法是不关心你在哪个平台上。
如果有多个不同的工具可以根据平台来完成某件事情,那么将它们抽象到一个函数或类后面,如果在当前平台上没有该工具,那么函数或类应该尝试一个工具并转移到另一个工具。
发布于 2013-08-27 22:44:28
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
nthttps://stackoverflow.com/questions/18472956
复制相似问题