据我所知,Python有3种方法来找出运行什么操作系统:
os.name
sys.platform
platform.system()
知道此信息对于有条件导入或使用不同平台之间的功能(例如,time.clock()
在Windows和time.time()
UNIX上)通常很有用。
我的问题是,为什么要使用3种不同的方法?什么时候应该使用一种方法而不是另一种方法?哪种方法是“最佳”的(最好是面向未来的,或者最不可能偶然排除程序可以实际运行的特定系统)?
好像sys.platform
是更具体的比os.name
,让您区分win32
来自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
下去,因此这个问题并不是特别紧迫,但我将非常感谢您对此进行的澄清。
sys.platform.startswith('linux')
而不是sys.platform == 'linux2'
为了将来的兼容性