美文网首页
os.name sys.platform platform.

os.name sys.platform platform.

作者: 污污老师 | 来源:发表于2017-07-05 18:12 被阅读0次

    1: sys.platform与os.name 在编译时就已经决定了,在源码里相当于一个常量, platform.system() 是运行时结果,是根据具体宿主系统调用系统命令显示的值, 实际是调用 uname -a

    2:os.name 是粗粒度的系统名,比如属于哪个平台,属于'posix', 'nt', 'os2', 'ce' or 'riscos'等,POSIX下面有很多具体系统了,什么linux ,bsd了,这就需要sys.platform  platform.system() 两个中的一个,更详细的告诉我是哪个系统类型。

    3:细粒度时,sys.platform  platform.system()到底选哪个那?

    使用os.name 检测是否是posix兼容的系统, 使用sys,platform 检测 是否是一个linux, cygwin, darwin, atheos

    Note:python3.3+ On Linux,sys.platform doesn’t contain the major version anymore. It is always 'linux', instead of'linux2'or'linux3'

    python3.3+ 在linux上 sys.platform返回值不在包含版本信息,总是返回linux,为了兼容性,通常写成

    sys.platform.startswith('linux')

    如果对sys.platform的结果不放心,都可以使用platform.system(), 在内部使用了os.uname() 命令

    事实还有一个os.uname(),它返回运行时系统更详细的信息,如下:

     os.uname()

    ('Linux', 'T450',  '4.4.0-83-generic',  '#106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017',  'x86_64')

    相关文章

      网友评论

          本文标题:os.name sys.platform platform.

          本文链接:https://www.haomeiwen.com/subject/ykcqhxtx.html