【问题】
写了个脚本:BlogsToWordPress,里面后来加上了:
#------------------------------------------------------------------------------
def logRuntimeInfo():
logging.info("Current runtime info:");
logging.info("Paramenters : %s", sys.argv);
logging.info("Python version : %s", sys.version_info);
logging.info("Windows version : %s", sys.getwindowsversion());
logging.info("Default encoding : %s", sys.getdefaultencoding());
logging.info("Current path : %s", sys.prefix);
return;结果却在Ubuntu中出现错误了:
AttributeError: ‘module’ object has no attribute ‘getwindowsversion’
现在希望,从Python中,能够判断当前系统是Windows还是Linux还是Mac,以及获得对应的系统的版本信息。
【解决过程】
1.参考:
How to check if OS is Vista in Python?
Python: What OS am I running on?
然后添加代码:
if(getattr(sys, "getwindowsversion", None)):
logging.info("Windows version : %s", sys.getwindowsversion());
logging.info("platform.system()=%s", platform.system());
logging.info("platform.release()=%s", platform.release());
logging.info("os.name=%s", os.name);
logging.info("sys.platform=%s", sys.platform);输出结果为:
LINE 1476 : INFO Windows version : sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') LINE 1478 : INFO platform.system()=Windows LINE 1479 : INFO platform.release()=7 LINE 1480 : INFO os.name=nt LINE 1481 : INFO sys.platform=win32
2.最后,再去参考python手册中,关于platform的介绍,最后使用其中的跨平台的函数,显示出一堆相关的信息,即可:
import platform;
# ouput system type and version info
logging.info("platform.machine()=%s", platform.machine());
logging.info("platform.node()=%s", platform.node());
logging.info("platform.platform()=%s", platform.platform());
logging.info("platform.processor()=%s", platform.processor());
logging.info("platform.python_build()=%s", platform.python_build());
logging.info("platform.python_compiler()=%s", platform.python_compiler());
logging.info("platform.python_branch()=%s", platform.python_branch());
logging.info("platform.python_implementation()=%s", platform.python_implementation());
logging.info("platform.python_revision()=%s", platform.python_revision());
logging.info("platform.python_version()=%s", platform.python_version());
logging.info("platform.python_version_tuple()=%s", platform.python_version_tuple());
logging.info("platform.release()=%s", platform.release());
logging.info("platform.system()=%s", platform.system());
#logging.info("platform.system_alias()=%s", platform.system_alias());
logging.info("platform.version()=%s", platform.version());
logging.info("platform.uname()=%s", platform.uname());
当前系统输出的信息如下:
LINE 1476 : INFO platform.machine()=AMD64
LINE 1477 : INFO platform.node()=PC-CLI-1
LINE 1478 : INFO platform.platform()=Windows-7-6.1.7601-SP1
LINE 1479 : INFO platform.processor()=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
LINE 1480 : INFO platform.python_build()=('default', 'Jun 12 2011 15:08:59')
LINE 1481 : INFO platform.python_compiler()=MSC v.1500 32 bit (Intel)
LINE 1482 : INFO platform.python_branch()=
LINE 1483 : INFO platform.python_implementation()=CPython
LINE 1484 : INFO platform.python_revision()=
LINE 1485 : INFO platform.python_version()=2.7.2
LINE 1486 : INFO platform.python_version_tuple()=('2', '7', '2')
LINE 1487 : INFO platform.release()=7
LINE 1488 : INFO platform.system()=Windows
LINE 1490 : INFO platform.version()=6.1.7601
LINE 1491 : INFO platform.uname()=('Windows', 'PC-CLI-1', '7', '6.1.7601', 'AMD64', 'Intel64 Family 6 Model 42 Stepping 7, GenuineIntel')【总结】
利用python自带的platform库函数,(可以不用os,system等库了),打印一堆信息,即可获得相关的平台类型以及版本信息了。
转载请注明:在路上 » 【已解决】Python中判断当前系统是Windows还是Linux(Ubuntu等)还是Mac,以及获得对应的系统版本信息