라이브러리&Module/표준라이브러리

시스템의 정보를 알려면? - platform

JackSmith 2024. 2. 9.

platform은 시스템의 정보를 확인할 때 사용하는 모듈이다.

내가 동키카 프로젝트를 진행하다가 config.py파일의 코드리뷰를 준비할때 의문이 든 코드가 있었다. 이 부분이다.

import platform

...

DONKEY_GYM = True

# DONKEY_SIM_PATH = "/home/tkramer/projects/sdsandbox/sdsim/build/DonkeySimLinux/donkey_sim.x86_64" when racing on virtual-race-league use "remote", or user "remote" when you want to start the sim manually first.
if (platform.system() == 'Windows'):
    #dspath = "C:\\Users\\1\\DonkeySimWin\\donkey_sim.exe"
    dspath = os.path.join(os.environ['HOMEPATH'], 'DonkeySimWin', 'donkey_sim.exe')
    dspath = os.path.abspath(dspath)
    if not os.path.exists(dspath):
        dspath = "../../../../../DonkeySimWin/donkey_sim.exe"
        dspath = os.path.abspath(dspath)
    DONKEY_SIM_PATH = dspath
elif (platform.system() == 'Darwin'):
    dspath = "~/Applications/donkey_sim.app/Contents/MacOS/donkey_sim"
    dspath = os.path.expanduser(dspath)
    dspath = os.path.abspath(dspath)
    DONKEY_SIM_PATH = dspath
else: # 'Linux'
    dspath = "~/donkey_sim"
    dspath = os.path.expanduser(dspath)
    dspath = os.path.abspath(dspath)
    DONKEY_SIM_PATH = dspath

 

위에서 platform.system()함수를 통해 플랫폼, 즉 OS의 이름을 받아올 수 있다고 한다. 윈도우, 맥, 리눅스 중 하나의 값을 반환하는 것 같다.

다음은 운영체제 이름정보를 받아오는 예제코드이다.

import platform

# Get the current platform
platform_name = platform.system()

# Print the platform name
print(f"Platform: {platform_name}")

# Check if the platform is Windows
if platform_name == "Windows":
    # Run a Windows-specific command
    print("Running Windows-specific command...")

# Check if the platform is Linux
elif platform_name == "Linux":
    # Run a Linux-specific command
    print("Running Linux-specific command...")

# Check if the platform is macOS
elif platform_name == "Darwin":
    # Run a macOS-specific command
    print("Running macOS-specific command...")

# Handle any other platform
else:
    print(f"Unknown platform: {platform_name}")

위 코드를 콜랩에 넣어보았다.

아하! 콜랩은 예상했듯이 리눅스로 돌아가는 것 같다. 아무래도 클라우드라서 그런 것 같다.

더 나아가,

uname()함수를 쓰면 namedtuple형태의 시스템 정보를 얻을 수도 있다고 한다. 참고로 콜랩의 CPU정보는 다음과 같다.

uname_result(system='Linux',
                        node='3fc34d76c7ba',               
                        release='6.1.58+',
                        version='#1 SMP PREEMPT_DYNAMIC Sat Nov 18 15:31:17 UTC 2023',
                        machine='x86_64')

하나씩 뜯어보자면,

  • node: 네트워크상의 컴퓨터 이름
  • release: 시스템 릴리즈 번호
  • version: 시스템 버전
  • machine: 시스템 유형

이게 리눅스 환경이라 하니 나중에 여기다가 GUI환경도 띄워보고 동키카 돌려보기도 하고 그렇게 모은 데이터로 학습도 시켜봐야 겠다. 내 컴퓨터 학습을 시켰을때는 대략 3시간 20분정도가 걸렸는데, 여기서 돌리면 조금 빠르게 학습시킬 수 있지 않을까 싶다.

 

출처: https://wikidocs.net/123697

 

064 시스템 정보를 알아보려면? ― platform

platform은 시스템 정보를 확인할 때 사용하는 모듈이다. ## 문제 지금 사용하는 컴퓨터 사양을 알고 싶다. 사용 중인 시스템의 CPU와 OS 정보를 출력하는 프로그램은…

wikidocs.net

 

댓글