파이썬을 설치할 때 함께 설치되는 유용한 모듈인 표준 라이브러리에 대해 알아보자.


sys

시스템의 기능을 다루는 함수들로 이루어진 모듈

  • sys.version_info
    파이썬 버전에 대한 정보를 출력

  • sys.version_info.major
    파이썬 메이저버전을 반환

  • sys.stdout.flush()
    현재 읽어들인 문자열을 바로바로 콘솔로 출력

  • sys.argv
    콘솔에서 .py를 실행했을 때 받는 인자 값

  • sys.exit()
    강제종료

os

  • os.path.exists(“경로”)
    해당 경로가 존재하는지 안하는지 True/False 반환

  • os.sep
    운영체제마다 디렉토리 구분자가 다른데( Linux/Unix = ‘/’, 윈도우=’/ ', Max = ‘:’ )
    이를 구분하지 않고 범용으로 쓸 수 있도록 디렉토리 구분자를 자동으로 처리해주는 변수

  • zip -r 경로1 경로2 … => ( 시스템 명령어 )
    경로1인 zip파일명으로 경로2를 압축
    ( -r 옵션은 해당 파일의 하위 폴더까지 모두 포함하겠다는 의미 )

  • os.system(“명령어”)
    cmd에서 쓰이는 시스템 명령어를 실행할 수 있는 메서드 수행이 성공적으로 실행된 경우에만 0을 반환
    => 하게 되면 콘솔창으로 해당 명령문에 대한 진행 사항이 출력됨

  • os.mkdir(“경로”)
    해당 경로로 디렉토리를 생성

  • os.getcwd()
    현재 디렉터리위치를 문자열로 반환

  • os.popen(“명령어”)
    콘솔창의 시스템 명령어를 실행하고 결과값을 읽기 모드 파일 객체로 리턴
    ex ) f = os.popen(“dir”)
    print(f.read())

  • os.getenv(“HOMEDRIVE”)
    C드라이브 경로 반환

os.getenv(“HOMEPATH”)
사용자 파일이름 반환

logging

프로그램 실행 중 변수 또는 메시지를 로그파일에 저장해 둘 수 있게 도와주는 모듈

로그파일 형식지정

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s : %(levelname)s : %(message)s',
    filename = logging_file,
    filemode = 'w',
)

를 통하여 로그 파일의 기록 형식을 지정할 수 있는데, 이 중 format속성의
(asctime)s 는 로그를 남긴 시간을 기록하는 곳이고,
(levelname)s 는 로그 파일의 어떤 정보 인지를 표시하는 곳이고,
(message)s 는 로그 파일에 남긴 기록이다.
filename속성은 로그파일을 남길 파일 객체이며,
filemode 는 모드를 선택하는 속성이다.

logging.debug("Start of the program")
logging.info("Doing something")
logging.warning("Dying now")

라고 코드를 작성하여 디버그 할 경우 해당 로그파일에는

2018-06-11 14:11:51,326 : DEBUG : Start of the program
2018-06-11 14:11:51,326 : INFO : Doing something
2018-06-11 14:11:51,326 : WARNING : Dying now

라는 기록이 남게 된다.

time

시간에 관한 정보를 제어할 수 있게 해주는 모듈

  • time.strftime(“%Y%m%d%H%M%S”)
    현재 날짜와 시간을 문자열로 반환
    => %Y = 네자리 연도, %m = 두 자리의 달

  • time.sleep(숫자)
    숫자(초단위)만큼 프로그램 실행상태를 일시정지

  • time.time()
    현재 시간을 실수 형태로 리턴

  • time.localtime( time.time() )
    time.time()이 반환하는 실수 값을 년,월,일,시,분초 형태로 바꾸어 주는 함수
    즉, 실수를 time형으로 변환

  • time.asctime( time.localtime(time.time()))
    보기 쉬운 형태로 현재 시간을 나타내 주는 함수

  • time.ctime()
    time.asctime()은 인자를 받지만, ctime은 인자가 필요없이 현재 시간만을 나타내 주는 함수다.

shutil

  • shutil.copy( “파일1”, “파일2” )
    파일1을 파일2로 복사 ( 동일 이름이 있을 경우 덮어씌우기 )

random

  • random.random()
    0~1.0사이의 실수 중 랜덤 하게 리턴

  • random.randint( 정수1, 정수2 )
    정수1 ~ 정수2 사이의 정수 중 랜덤 하게 리턴

  • random.choice( 리스트 )
    해당 리스트 중 랜덤 하게 선택하여 리턴

  • random.shuffle(리스트 )
    해당 리스트를 랜덤 하게 섞어서 다시 리스트로 리턴

webbrowser

  • webbrowser.open(“웹 주소”)
    웹 브라우저를 실행 시키고 해당 웹 주소로 이동
    ( 이미 웹 브라우저가 켜져 있다면 해당 브라우저에서 이동 )

  • webbrowser.open_new(“웹 주소”)
    웹 브라우저가 이미 실행 중이더라도 새로운 창으로 열리도록 이동

그외

  • platform.platform()
    현재 사용중인 운영체제 정보 반환

▶ 파일 전체경로 반환

  • 윈도우 일경우
    os.path.join(os.getenv(“HOMEDIRVE”),os.getenv(“HOMEPATH”),”파일명”))

  • 윈도우가 아닐 경우
    os.path.join(os.getenv(“HOME”),파일명)