据我所知,Python 有 3 种方法可以找出正在运行的操作系统:
os.name
sys.platform
platform.system()
了解这些信息在条件导入或使用不同平台的功能(例如time.clock()
在 Windows 上与time.time()
在 UNIX 上)时通常很有用。
我的问题是,为什么有 3 种不同的方式来做到这一点?什么时候应该使用一种方式而不是另一种方式?哪种方式是“最好的”(最面向未来或最不可能意外排除您的程序实际可以运行的特定系统)?
它似乎sys.platform
比 更具体os.name
,允许您区分(与 just 相对)和win32
from (与 just 相对)。但如果是这样,那和之间的区别又如何呢?cygwin
nt
linux2
darwin
posix
sys.platform
platform.system()
例如,哪个更好,这个:
import sys
if sys.platform == 'linux2':
# Do Linux-specific stuff
或这个?:
import platform
if platform.system() == 'Linux':
# Do Linux-specific stuff
现在我会坚持sys.platform
,所以这个问题并不是特别紧急,但我会非常感谢对此的一些澄清。