A Byte of Python - Standard Library Python


Standard Library

파이썬 표준 라이브러리는 많은 유용한 모듈을 포함하며 모든 표준 파이썬 설치에 부분이다. 파이썬 표준 라이브러리와 익숙해지는 것이 중요한것은 이들 라이브러리가 무엇을 할 수 있는지 익숙하면 문제를 빨리 해결할 수 있기 때문이다.

이 라이브러리에서 공통적으로 사용되는 모듈을 살펴볼 것이다. 파이썬 설치의 라이브러리 레퍼런스 섹션을 통해 파이썬 표준 라이브러리의 모든 모듈의 세부사항을 알 수 있다.

몇가지 유용한 라이브러리를 살펴보자.

sys모듈

sys모듈은 시스템 지정 기능을 포함한다. 명령어 매개변수를 포함하는 sys.argv를 이미 본적이 있다.

사용중인 파이썬 소프트웨어의 버전을 체크할 때 sys 모듈을 통해 알 수 있다.

>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=6, micro=0, releaselevel='final', serial=0)
>>> sys.version_info.major == 3
True

동작분석

sys 모듈은 version_info 튜플을 가지는데 버전 정보를 제공한다. 첫 엔트리는 메이져 버전이다. 이 정보를 얻어 사용한다.

logging모듈

디버깅 메시지나 중요한 메시지를 프로그램이 잘 작동하는지 확인하기 위해 다른 곳에 저장하기를 원한다고 생각해보자. 이는 logging모듈을 통해 처리할 수 있다.

stdlib_logging.py

import os
import platform
import logging

if platform.platform().startswith('Windows'):
  logging_file = os.path.join(os.getenv('HOMEDRIVE'), os.getenv('HOMEPATH'), 'test.log')
else:
  logging_file = os.path.join(os.getenv('HOME'), 'test.log')

print("Logging to", logging_file)

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

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


Output:

$ python stdlib_logging.py
Logging to /Users/swa/test.log

$ cat /Users/swa/test.log
2014-03-29 09:27:36,660 : DEBUG : Start of the program
2014-03-29 09:27:36,660 : INFO : Doing something
2014-03-29 09:27:36,660 : WARNING : Dying now
The cat command is used in the command line to read the 'test.log' file. If the cat command is not available, you can open the test.log file in a text editor instead.

How It Works

We use three modules from the standard library - the os module for interacting with the operating system, the platform module for information about the platform i.e. the operating system and the logging module to log information.

First, we check which operating system we are using by checking the string returned by platform.platform() (for more information, see import platform; help(platform)). If it is Windows, we figure out the home drive, the home folder and the filename where we want to store the information. Putting these three parts together, we get the full location of the file. For other platforms, we need to know just the home folder of the user and we get the full location of the file.

os.path.join() 를 사용해 위치의 세 부분을 함께 합친다. 단순 스트링 합치기로 처리하지 않고 특별한 함수를 사용하는 이유는 운영체제에 알맞은 위치형식을 얻기 위한 것이다. 이 곳에 사용한 join() 메소드는 os모듈의 일부로서 다른 곳에 사용한 string메소드와 다르다.

logging 모듈을 설정해 지정한 파일에 특정 포맷으로 메시지를 작성한다.

Finally, we can put messages that are either meant for debugging, information, warning or even critical messages. Once the program has run, we can check this file and we will know what happened in the program, even though no information was displayed to the user running the program.

금주의 모듈

표준 라이브러리에는 디버깅, 명령어 옵션 처리, 정규식 등 확인해볼게 많다.

표준 라이브러리를 확인하는 더 많은 내용에는 더그 헬만의 훌륭한 파이썬 모듈 오브 더 위크(책으로도 있음)와 파이썬 문서를 살펴본다


갈무리

We have explored some of the functionality of many modules in the Python Standard Library. It is highly recommended to browse through the Python Standard Library documentation to get an idea of all the modules that are available.

Next, we will cover various aspects of Python that will make our tour of Python more complete.







덧글

댓글 입력 영역