We are Architect

24. 점프 투 파이썬 (표준 라이브러리-3) 본문

Programing/Python

24. 점프 투 파이썬 (표준 라이브러리-3)

the best infra 2024. 11. 18. 01:40

 

* OS 관련 모듈

- 환경변수, 디렉터리, 파일 등이 OS자원을 제어하게 도와주는 모듈.

 

 

* os.environ

- 현재 시스템의 환경 변숫값 리턴.

다양한 환경 변수값을 리턴한다.

 

 

* os.chdir

- 현재 디렉터리의 위치 변경가능.

>>> os.chdir("C:/WINDOWS")

 

 

* 디렉터리 위치 돌려받기: os.getcwd

- 현재 자신의 디렉터리 위치를 리턴. 

 

 

* 시스템 명령어 호출: os.system

- 시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출. 

명령어를 가져올수 있음

 

 

* 실행한 시스템 명령어의 결괏값 돌려받기: os.popen

- 시스템 명령어를 실행한 결괏값을 읽기 모드 형태의 파일 객체로 리턴.

 

 

* 그 외에 함수들

- os.mkdir(디렉터리): 디렉터리 생성

- os.rmdir(디렉터리): 디렉터리 삭제. 대신 비어있어야 함.

- os.remove(파일): 파일을 지운다.

- os.rename: src라는 이름의 파일을 dst라는 이름으로 바꾼다.

 

 

* zipfile

- 여러 개의 파일을 zip형식으로 합치하거나 해제.

- 특정 파일만 해제하고 싶으면 밑에 예시에서 myzip.extractall('특정파일.txt')

- 만약 파일을 압축하여 묶고 싶은 경우에는 compression, compresslevel 옵션을 사용할 수 있다. 

 

 

* compression, compresslevel 옵션

- ZIP_STORED: 압축하지 않고 파일을 zip으로만 묶는다. 속도가 빠르다.

- ZIP_DEFLATED: 일반적인 zip 압축으로 속도가 빠르고 압축률은 낮다.(호환성이 좋다.)

- ZIP_BZIP2: bzip2 압축으로 압축률이 높고 속도가 느리다.

- ZIP_LZMA: lzma 압축으로 압축률이 높고 속도가 느리다. (7.zip과 동일한 알고리즘으로 알려져 있다.)

 

 

* threading

- 한 프로세스 안에서 다양한 작업을 수행하게 하는 모듈. 

import time
import threading

def long_task():
    for i in range(5):
        time.sleep(1)
        print("working:%s\n" % i)

print("Start")

threads = []
for i in range(5):
    # long_task()
    t = threading.Thread(target=long_task)
    threads.append(t)

for t in threads:
    t.start()

for t in threads:
    t.join()

print("End")

 

- 위에 코드는 5초에 5번 출력하는 작업을 나타내는 코드로써 Start가 출력되고 시간이 5초가 지나면 End를 출력하고 종료한다. 

 

 

* tempfile

- 파일을 임시로 만들어서 사용할 때 유용한 모듈이 바로 tempfile이다. tempfule,mkstemp()는 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 리턴한다. 

- tempfile.mkstemp(): 중복되지 않는 임시 파일의 이름을 무작위로 만들어서 리턴. 

>>> import tempfile
>>> filename = tempfile.mkstemp()

 

- tempfile.TemporaryFile(): 임시 저장 공간으로 사용할 파일 걕체를 리턴. 이 파일은 기본적으로 바이너리 쓰기 모드를 갖는다. > (wb). f.close()가호출되면 이 파일은 자동으로 삭제된다. 

>>> import tempfile
>>> f = tempfile.TemporarFile()
>>> f.close() < 임시 파일삭제

 

 

* traceback

- 프로그램 실행 중 발생한 오류를 추적하고자 할 때 사용하는 모듈.

import traceback

def a():
	return 1 / 0

def b():
	a()

def main():
	try:
    	b()
    except:
    	print("오류가 발생했습니다.")
        print(traceback.format_exc())

main()

 

 

* json

- JSON 데이터를 쉽게 처리하고자 사용하는 모듈.

 

 

- 또 다른 응용 방법

json.dump()는 데이터를 아스키 형태로 저장한다.
해당 내용이 쓰기 형태로 들어간 파일

 

- 한글 문자열이 아스키 형태의 문자열로 변경되는 것을 방지하는 방법도 있다. 

 

 

* urllib

- URL을 읽고 분석할 때 사용하는 모듈이다. 

- urllib.request.urlopen: http객체를 보내고 응답 객체를 반환. 

- respones.read().decode('utf-8'): 응답한 개체의 내용을 읽음. 그리고 utf-8로 반환. 

해당 url 페이지가 출력되는 모습

 

 

* webbrowser

- 파이썬 프로그램에서 시스템 브라우저를 호출할 때 사용하는 모듈이다.

import webbrowser

webbrowser.open_new('http://python.org')

바로 웹 페이지가 열림