라이브러리
전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아놓은것
모든 라이브러리를 아는것은 불가능 -> 필요한 라이브러리만 알고 그때그때 새로운것에 대해 공부하면됨
오늘은 자주 사용되고 필수적인 라이브러리에 대해 알아볼것이다
# test.py
import sys
print(sys.argv)
# 명령 프롬프트 창
python app.py abc python is easy
출력 결과

강제로 스크립트를 종료하는 기능을 수행하는 함수
Ctrl + Z나 Ctrl + D를 눌러서 스크립트를 종료하는 것과 같은 기능을 함
프로그램 파일안에서 사용하면 프로그램을 종료시킴
파이썬 모듈이들이 저장되어 있는 위치를 알려줌
이 위치에 있는 파이썬 모듈은 경로에 상관없이 어디에서나 불러올 수 있음

import sys
sys.path.append("study/test")
print(sys.path)
sys.path.append를 사용해 경로 이름을 추가할 수 있음
추가한 경로에 있는 파이썬 모듈을 불러와서 사용할 수 있음
# 객체인 data를 그대로 파일에 저장하는 Example
import pickle
f = open('test.txt', 'wb')
data = {1: 'python', 2: 'is', 3: 'good'}
pickle.dump(data, f)
f.close()
# 저장한 파일을 pickle.load로 불러오는 Example
import pickle
f = open('test.txt', 'rb')
data = pickle.load(f)
print(data)
f.close()
출력 화면

import os
print(os.environ)
print(os.environ['PATH'])
출력화면

환경 변수에 대한 정보를 딕셔너리 객체로 반환해줌
자세히보면 여러가지 유용한 정보를 찾을 수 있다 (난 아직 모르겠다..)
반환값이 딕셔너리이기 때문에 environ['PATH'] 으로 경로값을 얻을 수 있다
os.chdir()을 사용하면 현재 디렉토리의 위치를 변경할 수 있음
os.getcwd()를 사용하면 현재 내 디렉토리의 위치를 반환해줌
import os
os.chdir('C:\\Users')
print(os.getcwd())
출력결과

C:\\Users로 변경한 후 제대로 변경 됐는지 확인하기 위해서 os.getcwd()를 사용해 확인해보는 코드os.system()은시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 때 사용하는 함수
os.popen()은 시스템 명령어를 실행한 결과값을 읽기 모드 형태의 객체파일로 돌려주는 함수
# os.system Example
import os
os.system("dir")
출력결과

# os.popen Example
import os
#os.system("dir")
f= os.popen("dir")
print(f.read())
출력결과

파일을 복사해주는 모듈
파일 복사를 위해서는 shutil.copy()함수를 사용
import shutil
shutil.copyfile('test.txt', 'test_copy.txt')
디렉토리에 있는 파일들을 리스트로 만드는 함수
glod.glod()형식으로 사용
디렉토리안 안의 파일들을 읽어서 반환해주는데 *,? 등 메타 문자를 써서 원하는 파일만 읽어들일 수 있음
# glod Example
import glob
print(glob.glob('*.py'))
출력결과

파일을 임시로 만들어서 사용할 때 유용한 모듈
tempfile.mkstemp()는 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 반환해줌
# tmepfile Example
import tempfile
filename = tempfile.mktemp()
print(filename)
출력결과

import tempfile
f = tempfile.TemporaryFile()
f.close()
tempfile.TemporaryFile()은 임시 저장 공간으로 사용할 파일 객체를 반환해줌
이 반환된 파일은 기본적으로 'wb'모드를 가지며, f.close가 호출되면 파일 객체는 자동으로 사라짐
시간과 관련된 모듈
관련된 함수가 엄청 많음 (대표적인거 몇개만 알아보자)
UTC를 사용하여 현재 시간을 실수형태로 돌려주는 함수
1970/1/1 0시 0분 0초를 기준으로 지난 시간을 초단위로 돌려줌
import time
print(time.time())
출력결과 
time.localtime()은 time.time()으로 얻은 시간을 연도, 월, 일, 시, 분,초 의 형태로 바꾸어주는 함수import time
print(time.localtime(time.time()))
출력결과
time.asctime은 time.localtime에 의해서 반환된 튜플 형태의 값을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로 반환해주는 함수import time
print(time.asctime(time.localtime(time.time())))
출력결과
time.ctime()을 사용해 time.asctime(time.localtime(time.time())) 을 간편하게 표현할 수 있음 하지만 ctime은 항상 현재 시간만을 반환함import time
print(time.ctime())
출력결과
time.strftime('출력할 형식 포맷 코드',time.localtime(time.time())) ) 형식으로 사용
strftime 함수는 시간에 관계된 것을 세밀하게 표현하는 여러 가지 포맷 코드를 제공
아래는 시간과 관련된 포맷코드 임
| 포맷코드 | 설명 | 예 |
|---|---|---|
%a | 요일의 줄임말 | Mon |
%A | 요일 | Monday |
%b | 달의 줄임말 | Jan |
%B | 달 | January |
%c | 날짜와 시간을 출력함. | Thu May 25 10:13:52 2023 |
%d | 일(day) | [01,31] |
%H | 시간(hour): 24시간 출력 형태 | [00,23] |
%I | 시간(hour): 12시간 출력 형태 | [01,12] |
%j | 1년 중 누적 날짜 | [001,366] |
%m | 달 | [01,12] |
%M | 분 | [01,59] |
%p | AM or PM | AM |
%S | 초 | [00,59] |
%U | 1년 중 누적 주(일요일 시작) | [00,53] |
%w | 숫자로 된 요일 | [0(일), 6(토)] |
%W | 1년 중 누적 주(월요일 시작) | [00,53] |
%x | 현재 설정된 지역에 기반한 날짜 출력 | 05/25/23 |
%X | 현재 설정된 지역에 기반한 시간 출력 | 17:22:21 |
%Y | 연도 출력 | 2023 |
%Z | 시간대 출력 | 대한민국 표준시 |
%% | 문자 % | % |
%y | 세기 부분을 제외한 연도 출력 | 01 |
import time
print(time.strftime('%x', time.localtime(time.time())))
print(time.strftime('%c', time.localtime(time.time())))
출력결과
주로 루프 안에서 많이 사용됨
일정 시간 간격을 두고 루프를 실행할 수 있음
import time
for i in range(10):
print(i)
time.sleep(1)
출력결과
위 코드는 1초 간격으로 0부터 9까지 숫자를 출력하는 코드
sleep()의 인수는 실수형태로 사용가능 1이면 1초 0.5이면 0.5초를 의미함
파이썬에서 달력을 볼 수 있게 해주는 모듈
calendar.calendar(연도)로 사용하면 그해의 전체 달력을 확인할 수 있음 calendar.prcal(연도)도 동일한 결과를 얻음
import calendar
print(calendar.calendar(2024))
출력결과

calendar.prmonth(year,month)를 하면 해당 연월의 달력을 확인할 수 있음import calendar
print(calendar.prmonth(2024,1))
출력결과

weekday(year, month, day)는 날짜에 해당하는 정보를 반환해줌
월요일 - 0, 화요일 - 1, 수요일 - 2, 목요일 - 3, 금요일 - 4, 토요일 - 5, 일요일 - 6 으로 반환됨
import calendar
print(calendar.weekday(2024,1,18))
출력결과
monthrange(year, month, day)는 해당 달이 며칠까지 있는지 튜플로 반환해줌
튜플에서 첫 인덱스는 해당 달의 1일의 요일이고 두번재 인덱스는 마지막 일이다
import calendar
print(calendar.monthrange(2024,2))
출력결과

난수를 발생시키는 모듈
random과 randint에 대해 알아보자
import random
print(random.random())
print(random.randint(1,100))
출력결과

random.random()은 0.0에서 1.0 사이의 실수 중에서 난수 값을 반환
randon.randint(start, end) 은 strt와 end사이의 정수중 난수값을 반환
import random
a =[1,2,3,4,5]
random.shuffle(a)
print(a)
출력결과
import webbrowser
webbrowser.open('http://www.google.com')
출력결과
위 코드는 웹 브라우저를 자동으로 실행하고 입력한 주소로 이동하게 한다
웹 브라우저가 이미 실행중이면 입력주소로 이동하고, 실행중이지 않으면 웹 브라우저를 실행해 이동한다