cross platform – How can I find the current OS in Python?
cross platform – How can I find the current OS in Python?
If you want user readable data but still detailed, you can use platform.platform()
>>> import platform
>>> platform.platform()
Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne
platform
also has some other useful methods:
>>> platform.system()
Windows
>>> platform.release()
XP
>>> platform.version()
5.1.2600
Heres a few different possible calls you can make to identify where you are
import platform
import sys
def linux_distribution():
try:
return platform.linux_distribution()
except:
return N/A
print(Python version: %s
dist: %s
linux_distribution: %s
system: %s
machine: %s
platform: %s
uname: %s
version: %s
mac_ver: %s
% (
sys.version.split(n),
str(platform.dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))
The outputs of this script ran on a few different systems (Linux, Windows, Solaris, MacOS) and architectures (x86, x64, Itanium, power pc, sparc) is available here: https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version
e.g. Solaris on sparc gave:
Python version: [2.6.4 (r264:75706, Aug 4 2010, 16:53:32) [C]]
dist: (, , )
linux_distribution: (, , )
system: SunOS
machine: sun4u
platform: SunOS-5.9-sun4u-sparc-32bit-ELF
uname: (SunOS, xxx, 5.9, Generic_122300-60, sun4u, sparc)
version: Generic_122300-60
mac_ver: (, (, , ), )
or MacOS on M1
Python version: [2.7.16 (default, Dec 21 2020, 23:00:36) , [GCC Apple LLVM 12.0.0 (clang-1200.0.30.4) [+internal-os, ptrauth-isa=sign+stri]
dist: (, , )
linux_distribution: (, , )
system: Darwin
machine: arm64
platform: Darwin-20.3.0-arm64-arm-64bit
uname: (Darwin, Nautilus.local, 20.3.0, Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101, arm64, arm)
version: Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101
mac_ver: (10.16, (, , ), arm64)
I usually use sys.platform
to get the platform. sys.platform
will distinguish between linux, other unixes, and OS X, while os.name
is posix
for all of them.
For much more detailed information, use the platform module. This has cross-platform functions that will give you information on the machine architecture, OS and OS version, version of Python, etc. Also it has os-specific functions to get things like the particular linux distribution.
cross platform – How can I find the current OS in Python?
import os
print os.name
This gives you the essential information you will usually need. To distinguish between, say, different editions of Windows, you will have to use a platform-specific method.