본문 바로가기
Programming Language/Python

[Do it! 점프 투 파이썬 18일차] 5장_파이썬 날개 달기 (표준 라이브러리)

by 요호유후 2024. 4. 15.
반응형

아래의 내용은 'Do it! 점프 투 파이썬' 책을 공부하며 정리하였습니다.

https://www.aladin.co.kr/shop/wproduct.aspx?ISBN=K362833219&start=pnaver_02

 

Do it! 점프 투 파이썬

챗GPT를 시작으로 펼쳐진 생성 AI 시대에 맞춰 설명과 예제를 다듬고, 최신 경향과 심화 내용을 보충했다. 또한 이번 개정 2판도 50만 코딩 유튜버인 조코딩과 협업을 통해 유튜브 동영상을 제공해

www.aladin.co.kr

 

 

유용한 프로그램을 모아 놓은 것을 파이썬 표준 라이브러리 라고 합니다. 오늘은 표준 라이브러리에 대해 정리해보도록 하겠습니다. 

 

* 함수를 사용하기 전에 해당 라이브러리를 import 해야합니다!

표준 라이브러리 함수 설명
datetime date() 연, 월, 일로 날짜를 표현할 때 사용하는 함수
date.weekday() 요일을 표현할 때 사용하는 함수
0은 월요일을 의미하며 순서대로 1은 화요일, ..., 6은 일요일
date.isoweekday() 요일을 표현할 때 사용하는 함수
1은 월요일을 의미하며 순서대로 2은 화요일, ..., 7은 일요일
time time() UTC를 사용하여 현재 시간을 실수 형태로 리턴하는 함수
1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간을 초 단위로 리턴함
localtime() time.time()이 리턴한 실숫값을 사용해서 연, 월, 일, 시, 분, 초, ...의 형태로 바꾸어 주는 함수
asctime() time.localtime가 리턴된 튜플 형태의 값을 인수로 받아서 날짜와 시간을 리턴하는 함수
ctime() time.asctime(time.localtime(time.time()))은 간단하게 time.ctime()으로 표시할 수 있음.
asctime과 다른 점은 항상 현재 시간만을 리턴
strftime() 시간에 관계된 것을 세밀하게 표현하는 여러 가지 포맷 코드를 제공
"time.strftime('출력할 형식 포맷 코드', time.localtime(time.time()))"

[포맷코드]
%a : 요일의 줄임말 (ex) Mon
%b : 달의 줄임말 (ex) Jan
%H : 시간(hour) 24시간 출력 형태 (ex) [00-23]
%Y : 연도 출력 (ex) 2023
등 여러가지가 있음
time.sleep() 주로 루프 안에서 많이 사용함. 일정한 시간 간격을 두고 루프를 실행할 수 있음.
math gcd() 최대 공약수 리턴하는 함수
lcm() 최소 공배수 리턴하는 함수
random random() 난수(규칙이 없는 임의의 수)를 발생시키는 모듈.
0.0에서 1.0 사이의 실수 중에서 난수 값을 리턴함.
randint() 1에서 10 사이의 정수 중에서 난수값을 리턴함.
(* 인수 2개를 무조건 가짐)
choice() 입력 받은 리스트에서 무작위로 하나를 선택하여 리턴함.
sample() 리스트의 항목을 무작위로 섞고 싶을 때 사용.
itertools zip_longest(*iterables, fillvalue=None) 같은 개수의 자료형을 묶는 파이썬 내장 함수인 zip 함수와 똑같이 동작함.
단, 전달한 객체의 길이가 서로 다르다면 긴 객체의 길이에 맞춰 fillvalue에 설정한 값을 짧은 객체에 채울 수 있음. (기본은 None으로 채움)
permutation(iterable, r) 객체 중에서 r개를 선택한 순열을 이터레이터로 리턴하는 함수
(* 이터레이터 : 반복 가능한 객체)
combinations(iterable, r) 반복 가능 객체 중에서 r개를 선택한 조합을 이터레이터로 리턴하는 함수
combinations_with_replacement() 같은 숫자를 허용하는 중복 조합
functools reduce(function, iterable) 함수(function)를 반복 가능한 객체(iterable)의 요소에 차례대로(왼쪽에서 오른쪽으로) 누적 적용하여 이 객체를 하나의 값으로 줄이는 함수
operator itemgetter() sorted와 같은 함수의 key 매개변수에 적용하여 다양한 기준으로 정렬하는 모듈
shutil copy() 파일을 복사할 때 사용함.
move() 파일을 이동시킬 때 사용함.
glob glob(pathname) 디렉터리 안의 파일들을 읽어서 리턴함. *, ? 등 메타 문자를 써서 원하는 파일만 읽어 들일 수도 있음.
(* ? : 1자리 문자열, * : 임의의 길이의 문자열)
pickle dump() 딕셔너리 객체를 그대로 파일에 저장할 때 사용함.
os environ() 현재 시스템의 환경 변숫값을 리턴함.
chdir() 현재 디렉터리의 위치를 변경함.
getcwd() 현재 자신의 디렉터리 위치를 리턴함.
system() 시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 수도 있음. os.system("명령어") 처럼 사용함.
popen() 시스템 명령어를 실행한 결괏값을 읽기 모드 형태의 파일 객체로 리턴함.

* f.read() : 읽어 들인 파일 객체의 내용을 보기 위해 사용 (f는 변수)
mkdir(디렉터리) 디렉터리를 생성함.
rmdir(디렉터리) 디렉터리를 삭제함. 단, 디렉터리가 비어 있어야 삭세할 수 있음.
remove(파일) 파일을 지움.
rename(src, dst) src 라는 이름의 파일을 dst라는 이름으로 바꿈.
zipfile write() 개별 파일을 추가할 수 있음
extreactall() 모든 파일을 해제
extract() 합친 파일에서 특정 파일만 해제
ZipFile(파일명, 모드,compression, compresslevel) 파일 압축.

[compression]
ZIP_STROED, ZIP_DEFLATED, ZIP_BAZIP2, ZIP_LZMA 이 있음.

[compressionlevel]
압축 수준을 의미하는 숫자값, 1~9를 사용함.
1은 속도가 가장 빠르지만 압축률이 낮고, 9는 속도는 가장 느리지만 압축률이 높음.
tempfile - 파일을 임시로 만들때 사용.

* mkstemp() : 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 리턴함.
traceback - 프로그램 실행 중 발생한 오류를 추적하고자 할 때 사용하는 모듈. 코드에서 오류가 발생한 위치와 원인을 정확히 판단할 수 있음.
오류가 발생한 위치에 print(tracebackk.format_exc())를 입력하여 오류를 추적할 수 있음.
json - JSON 데이터를 쉽게 처리하고자 사용하는 모듈
urllib - URL을 읽고 분석할 때 사용하는 모듈
webbrowser - 파이썬 프로그램에서 시스템 브라우저를 호출할 때 사용하는 모듈

 

 

코드 실습(입력)

표준 라이브러리 코드 실습(입력)1
표준 라이브러리 코드 실습(입력)2
표준 라이브러리 코드 실습(입력)3

 

 

코드 실습(출력)

표준 라이브러리 코드 실습(출력)

 

 

오늘은 여기까지 표준 라이브러리에 대해 정리해보았습니다. 점점 더 어려워지네요...

라이브러리라서, 그때 그때 제가 코드 작성할때 필요로 하는 라이브러리를 찾아가며 공부하는게 더 머리에 쏙쏙 들어올 것 같긴해요. 그래서 이번 장에서는 '이해해야돼! 머리에 남겨야돼!' 보다는 그냥 '이런 라이브러리도 있구나~ 나중에 이러이러한 거 개발할 때 참고해봐야지!' 정도로만 생각하며 쓰윽 봤습니다. 

 

다음 장은 외부 라이브러리인데 다음 장도 이번 장과 비슷하게 간략하게 정리하며 넘어가려합니다. 필요한 라이브러리는 그때 그때 다시 찾아보는 걸로!

 

그럼 오늘 공부 끝!

반응형

댓글