반응형

파이썬, 시스템 정보 보여주기

 

글. 수알치 오상문


시스템 운영체제 및 디스크, 메모리 사용량 등을 보여줍니다.
리눅스는 캐시/버퍼 메모리 크기 고려하여 메모리 크기를 보여줍니다.

psutil 패키지가 없다면 pip install psutil 명령으로 설치해야 합니다.

 

리눅스에서 실행한 화면

 

윈도우에서 실행한 화면

 

[소스 코드] 

# System Information
# by Oh SangMun
import platform
import psutil
import time
 
def sizefy(value):
    '''
    파일 바이트 단위 크기를 입력받고 적당한 단위로 변환하여 돌려준다.
    Arguments:
        value(int): 파일 크기(바이트 단위)
    Returns:
        (str): 변환된 크기와 단위
    '''
    try:
        value = int(value)
    except ValueError:
        return "0 KB"
    if value <= 0:
        return '0 KB'
    units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
    unit_index = 0
    while value >= 1024 and unit_index < len(units)-1:
        value /= 1024.0
        unit_index += 1
    return '{:.2f} {}'.format(value, units[unit_index])
 
 
if __name__=="__main__":
 
  OS = platform.system()
  OS_Release = platform.release()
  Host_Name = platform.node()
  Python_Version = platform.python_version()
  Processor_Architecture = platform.architecture()
 
  while True:
    print('\033c') # 출력 위치 초기화 화면 지움
    print("*"*50)
    print("OS:", OS)
    print("OS Release:", OS_Release)
    print("Host Name:", Host_Name)
    print("Python Version:", Python_Version)
    print("Processor Architecture:", Processor_Architecture)
 
    #서버 디스크 사용량과 메모리 사용량을 검사
    disk_usage = psutil.disk_usage('/')
    memory_usage = psutil.virtual_memory()
 
    try:
      cached_buffers = memory_usage.cached + memory_usage.buffers
    except:
      cached_buffers = 0
 
    print()
    print(">>> Disk")
    print(f"Total size: {str(disk_usage.total).rjust(15)} bytes ({sizefy(disk_usage.total)})")
    print(f"Used  size: {str(disk_usage.used).rjust(15)} bytes ({sizefy(disk_usage.used)})")
    print(f"Free  size: {str(disk_usage.free).rjust(15)} bytes ({sizefy(disk_usage.free)})")
    print()
    print(">>> Memory")
    print(f"Total Mem.: {str(memory_usage.total).rjust(14)} bytes ({sizefy(memory_usage.total)})")
    print(f"Used  Mem.: {str(memory_usage.used).rjust(14)} bytes ({sizefy(memory_usage.used)})")
    print(f"Free  Mem.: {str(memory_usage.available).rjust(14)} bytes ({sizefy(memory_usage.available - cached_buffers)})")
    if cached_buffers > 0:
      print(f"Cache/Buf.: {str(cached_buffers).rjust(14)} bytes ({sizefy(cached_buffers)})")
    print("*"*50)
    time.sleep(5)

 

 

반응형

+ Recent posts