본문 바로가기
코딩 이야기/파이썬(Python)

단도직입 파이썬(Python) – 라이브러리(Library)

by 아재코더 2021. 12. 16.
파이썬 - 라이브러리(Library)

전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것이 바로 파이썬 표준 라이브러리(Python Standard Library)입니다. 모든 내장함수를 외울 필요가 없는 것과 마찬가지로 모든 라이브러리를 알 필요는 없지만 어떤 일을 할 때 어떤 라이브러리가 사용되는지 정도만 파악하면 됩니다.

자주 사용되고 알아 두면 좋은 파이썬 표준 라이브러리에 대해 알아보겠습니다.

sys 모듈

sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 하는 모듈입니다.

sys 모듈

python 실행 후 모든 문자열들이 공백을 기준으로 나뉘어 sys.argv 리스트의 요소가 되는 것을 알 수 있습니다.

>>> import sys

>>> sys.exit()

sys.exit()는 강제로 스크립트를 종료할 수 있습니다.(Ctrl + z와 동일한 기능입니다.)

sys.path는 나의 파이썬 모듈들의 저장 위치를 나타냅니다. 이 위치에 있는 파이썬 모듈은 경로에 상관없이 어디에서나 불러올 수 있습니다.

>>> import sys

>>> sys.path

['', 'C:\\Users\\JH_Baik\\AppData\\Local\\Programs\\Python\\Python38-32\\python38.zip', (중간 생략) 'C:\\Users\\JH_Baik\\AppData\\Local\\Programs\\Python\\Python38-32\\lib\\site-packages']

위의 예에서 첫 번째 ' '는 현재 디렉터리를 뜻합니다.

sys.path.append('디렉터리')으로 모듈이 저장된 위치를 추가할 수 있습니다.

 

pickle 모듈

pickle은 객체의 형태를 유지하며 파일에 저장하고 불러올 수 있게 하는 모듈입니다.

pickle 모듈

dump 함수를 사용하여 딕셔너리 형태의 자료를 test.txt에 기록하고, load 함수를 통해 불러와 출력하는 것을 볼 수 있습니다. 딕셔너리 객체 외 어떤 자료형이든 저장하고 불러올 수 있습니다.

os 모듈

os 모듈은 환경 변수, 디렉터리, 파일 등 os 자원을 제어할 수 있게 해주는 모듈입니다.

>>> import os

>>> os.environ

environ({'ALLUSERSPROFILE': 'C:\\ProgramData', (중간 생략) 'LANG': 'ko_KR.UTF-8', 'COLORTERM': 'truecolor'})

현재 본인의 시스템 환경 값을 딕셔너리 형태로 화면에 왕창 뿌려줍니다.

 

당장은 사용하지 않겠지만 알아두면 유용한 os 함수 몇 개를 더 알아봅니다.

os.chdir( )
디렉터리 위치 변경
os.getcwd( )
현재 디렉터리 위치를 리턴
os.system( )
시스템 자체의 명령어를 호출함
os.popen( )
시스템 명령어 실행한 결과를 읽기 형태의 파일 객체로 리턴
 
예를 들어 f = os.open('dir')를 실행 후 print(f.read()) 하게 되면 내용을 아래와 같이 볼 수 있습니다.

예전 MS - DOS 명령어들이 막 생각나는군요.^^

이 밖에도 유용한 os 함수는 아래와 같습니다.

os.mkdir(디렉터리)
디렉터리 생성
os.rmdir(디렉터리)
디렉터리 삭제(폴더가 비어 있어야 함!)
os.unlink(파일명)
파일의 삭제
os.rename(A, B)
파일명 A을 파일명 B로 변경
 
time 모듈

time 모듈에는 함수가 아주 많으며 그중 유용한 함수 몇 가지를 알아봅니다. (예전 네이버 검색광고 API를 사용할 때도 timestamp를 ID, secret key와 함께 보내야 결과를 받을 수 있었으며, 아래 링크될 구글 이미지 웹 크롤러에도 time 모듈을 사용하는 부분이 있습니다. 많이 사용되는 모듈과 함수입니다.)

time.time()는 UTC(협정 세계표준시)를 사용하며 1970년 1월 1일 0시 0분 0초를 기준하여 현재 시간을 실수 형태로 돌려줍니다.

>>> import time

>>> time.time()

1620032066.378297

time.localtime은 time.time()이 돌려준 값을 이용해서 연, 월, 일, 시, 분, 초… 등의 형태로 돌려줍니다.

>>> time.localtime(time.time())

time.struct_time(tm_year=2021, tm_mon=5, tm_mday=3, tm_hour=18, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=123, tm_isdst=0)

time.asctime()은 time.localtime()에 의해 반환된 큐플 형태의 값을 좀 더 보기 쉬운 형태의 문자열로 돌려줍니다.

>>> time.asctime(time.localtime(time.time()))

'Mon May 3 18:07:18 2021'

time.asctime(time.localtime(time.time()))를 간편하게 ctime() 함수를 사용할 수 있습니다. 하지만 ctime()은 항상 현재 시간만을 돌려줍니다.

>>> time.ctime()

'Mon May 3 18:07:24 2021'

이외에도 time 모듈 관련 함수들이 많이 있습니다.(time.strftime, time.sleep 등)

random 모듈

random은 난수를 발생시키는 모듈입니다.

random.random()은 0.0~1.0 사이에서 난수를 발생시켜 줍니다.

>>> import random

>>> random.random()

0.6134652928106256

randint(a, b)는 a에서 b사이의 정수 중에서 난수를 발생시켜 줍니다.

>>> random.randint(1,10)

9

>>> random.randint(10,100)

75

아마 로또 복권 예상번호도 randint() 함수를 사용하여 만들지 않을까요?^^

지금까지 언급된 모듈 외에도 유용한 모듈을 파이썬 공식 홈페이지에서 자세히 알려주고 있습니다.

댓글