programing

Python에서 현재 OS를 찾으려면 어떻게 해야 하나요?

goodcopy 2022. 10. 8. 23:00
반응형

Python에서 현재 OS를 찾으려면 어떻게 해야 하나요?

제목에서 알 수 있듯이 현재 운영체제를 python으로 찾으려면 어떻게 해야 하나요?

사용자가 읽을 수 있는 데이터를 원하는 경우 platform.platform()사용할 수 있습니다.

>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'

platform에는 다른 유용한 방법도 있습니다.

>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'

다음은 현재 위치를 식별하기 위해 할 수 있는 몇 가지 다른 호출입니다. linux_distribution 및 dist는 최신 버전의 python에서 가져온 것 같습니다.따라서 여기에 래퍼 기능이 있습니다.

import platform
import sys

def linux_distribution():
  try:
    return platform.linux_distribution()
  except:
    return "N/A"

def dist():
  try:
    return platform.dist()
  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(dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))

이 스크립트의 출력은 몇 가지 다른 시스템(Linux, Windows, Solaris, MacOS)에서 실행되며 아키텍처(x86, x64, Itanium, power pc, sparc)는 https://github.com/hpcugent/easybuild/wiki/OS_flavor_name_version 에서 구할 수 있습니다.

예: Solaris on sparc의 장점:

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: ('', ('', '', ''), '')

또는 M1의 MacOS

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')

저는 주로 플랫폼을 이용합니다. sys.platform는 Linux, 기타 Unix 및 OS X를 구별합니다.os.name" 입니다.posix모든 것을 위해.

자세한 내용은 플랫폼모듈을 참조하십시오.기계 아키텍처, OS 및 OS 버전, Python 버전 등에 대한 정보를 제공하는 크로스 플랫폼 기능을 갖추고 있습니다.또, 특정의 Linux 디스트리뷰션등의 기능을 취득할 수 있습니다.

import os
print(os.name)

이것은 통상적으로 필요한 필수 정보를 제공합니다.예를 들어 Windows의 다른 에디션을 구별하려면 플랫폼 고유의 방법을 사용해야 합니다.

https://docs.python.org/library/os.html

Greg의 투고를 보완하기 위해 MacOS, Linux, Unix 등을 포함하는 Posix 시스템에 있는 경우 os.uname()을 사용하여 어떤 종류의 시스템인지 더 잘 알 수 있습니다.

뭔가 비슷한 게 있어요.

import os
if os.name == "posix":
    print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
    print("unknown OS")

언급URL : https://stackoverflow.com/questions/110362/how-can-i-find-the-current-os-in-python

반응형