据我所知,Python 有3种方法可以找出操作系统的运行情况:
os.name
sys.platform
platform.system()
了解这些信息在条件导入或使用不同平台之间的功能(例如,Windows 上的 time.clock()
和 UNIX 上的 time.time()
)中通常很有用。
我的问题是,为什么会有三种不同的方法呢?什么时候应该使用一种方法而不是另一种方法?哪种方式是“最好的”(最不可能或最不可能意外地排除一个特定的系统,您的程序实际上可以运行在这个系统上) ?
看起来 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
,所以这个问题不是特别紧急,但我会非常感谢一些澄清关于这一点。