1. OS
파이썬의 os 모듈은 운영 체제와 상호 작용하는 많은 함수와 유틸리티를 제공합니다. 이 모듈을 사용하면 파일, 디렉터리 또는 운영 체제에 관한 작업을 수행할 수 있습니다.
os.getcwd()
: 현재 경로 가져오기
/content ['.config', 'sample_data'] |
os.chdir()
: 작업 디렉토리 변경하기
os.path.join( 'path명' , '파일명' )
: 파일경로 합쳐주기
. /data/output.txt |
['data/output.txt', 'data/텍스트파일1.txt', 'data/텍스트파일3.txt', 'data/텍스트파일2.txt'] |
구분 | 함수명 | 설명 |
디렉터리 정보 | os.getcwd() | 현재 작업중인 디렉터리(cwd; current working directort) 정보를 리턴 |
os.listdir(path명) | "path명"의 디렉터리 내 파일 및 서브디렉터리 정보를 list([])로 리턴 | |
os.walk(path명) | "path명"의 디렉터리 내 파일 및 서브디렉터리 정보를 top-down 방식으로 서브 디렉터리 말단까지 찾아서 리턴 | |
디렉터리 변경 | os.chdir(path명) | 현재 디렉터리(cwd)를 "path명"으로 변경 |
디렉터리 생성 | os.mkdir(path명 | "path명"의 디렉터리를 생성 |
os.makedirs(path명) | "path명"에 소속된 모든 빈 디렉토리를 모두 생성 | |
디렉터리 삭제 | os.rmdir(path명) | "path명"의 디렉토리를 삭제 |
os.removedirs(path명) | "path명"에 소속된 모든 빈 디렉터리를 모두 삭제 | |
파일 삭제 | os.remove(path명) | "path명"의 파일을 삭제 |
이름 변경 | os.rename(src, dest) | "src"를 "dest"로 변경 |
존재 여부 파악 | os.path.exists(path명) | "path명"의 존재 여부를 리턴 |
os.path.isdir(path명) | "path명"의 디렉터리 존재 여부를 리턴 | |
os.path.exists(path명) | "path명"의 file 존재 여부를 리턴 | |
시스템 명령어 | os.system(cmd명령어) | "cmd명령어"를 실행 |
2. glob
glob 모듈은 파일과 폴더 이름을 찾을 때 사용하는 파이썬의 도구입니다. 이 모듈의 이름은 "전역적으로 찾기"라는 의미의 "global"에서 유래했습니다. glob는 특정 패턴에 일치하는 파일이나 폴더 이름을 쉽게 찾아줍니다. (아래 파일을 다운로드 받아 압축을 풀고 예제를 진행합니다.)
['./data/output.txt', './data/텍스트파일1.txt', './data/텍스트파일3.txt', './data/텍스트파일2.txt'] |
- 현재경로에 있는 파일 찾기
오렌지.txt 사과.txt 바나나.txt |
- 하위경로, 안쪽에 있는 파일 찾기
data/output.txt data/텍스트파일1.txt data/텍스트파일3.txt data/텍스트파일2.txt |
- 현재경로와 하위경로의 txt 파일 모두 찾기
오렌지.txt 사과.txt 바나나.txt data/output.txt data/텍스트파일1.txt data/텍스트파일3.txt data/텍스트파일2.txt |
- 파일명 글자수로 찾기
없어서 검색결과 뜨지 않음 |
사과.txt |
- 문자열 패턴 포함 파일명 찾기
abcdef.txt |
- 한글로 파일명 찾기
사과.txt |
data/텍스트파일1.txt data/텍스트파일3.txt data/텍스트파일2.txt |
data/텍스트파일1.txt data/텍스트파일3.txt data/텍스트파일2.txt |
3. fileinput
fileinput 모듈은 파이썬에서 여러 입력 스트림을 동시에 순회하는 데 유용합니다. 이 모듈의 주요 용도는 명령줄에서 명시된 여러 파일을 동시에 읽는 스크립트를 작성하는 것입니다.
fileinput.input()
: 여러 파일을 동시에 읽어오기
1. 안녕하세요! 파이썬! 2. 안녕하세요! 파이썬! 3. 안녕하세요! 파이썬! 4. 안녕하세요! 파이썬! 5. 안녕하세요! 파이썬! 1. 빨강 2. 노랑 3. 파랑 4. 초록 1. 오늘은 월요일 2. 오늘은 화요일 3. 오늘은 수요일 4. 오늘은 목요일 5. 오늘은 금요일 6. 오늘은 토요일 |
- 각 파일의 첫번째 라인을 찾아 변경하기
변경전 -> 변경후
- 검색된 라인 변경하기
- 단어 변경하기
변경전 -> 변경후
4. pickle
pickle 모듈은 파이썬 객체 구조를 직렬화하고 역직렬화하는 프로세스를 제공합니다. 다른 말로하면, 파이썬 객체(리스트, 딕셔너리, 클래스 인스턴스 등)를 바이트 스트림으로 변환하고, 그 바이트 스트림을 다시 파이썬 객체로 복원할 수 있습니다.
바이트 스트림 : 리스트 등 자료구조, 객체는 파이썬에서 쓸 수 있는 메모리의 집합 , 쓰고 싶을 때 불러써 쓰는 것, 다른 언어로는 전달 불가능함, 그래서 바이트 스트림 형태로 변환해서 보내게 됨, 누구나 받아서 처리는 것으로 변환해야 함. 다른 언어에도 바이트스트림을 받아 원상태로 돌릴 수도 있음
바이트 스트림을 쓰는 이유
리스트 등 자료구조, 객체는 파이썬에서 쓸 수 있는 메모리의 집합 입니다.
리스트나 객체는 쓰고 싶을 때 불러써 쓰는 파이썬의 언어입니다.
그래서 다른 언어로는 전달 불가능하거나 달라질 수 있습니다.
그래서 바이트 스트림 형태로 변환해서 보내게 됩니다.
누구나 받아서 처리할 수 있고 다른 언어에도 바이트스트림을 받아 원상태로 돌릴 수도 있습니다.
예시1)
<class 'list'> ['apple', 'banana', 'orange'] |
ㄴ원상태로 복원됨
예시2)
<class 'dict'> {1: {'id': 1, 'userid': 'apple', 'name': '김사과', 'gender': '여자', 'age': 20}} |
ㄴ원상태로 복원됨
5. shutil
shutil 모듈은 파이썬에서 고수준 파일 연산을 수행하기 위한 유틸리티 모듈입니다. 기본적인 os 모듈에서 제공하는 기능을 확장하여, 파일 및 디렉터리를 복사, 이동, 삭제하는 데 사용할 수 있는 더 다양한 함수를 제공합니다.
6. fnmatch
fnmath는 파일 이름과 패턴을 비교하거나 매칭하는 데 사용되는 Python 표준 라이브러리 모듈 중 하나입니다. 이모듈은 와일드 카드 문자(*,?)를 사용하여 파일 이름을 패턴과 비교하고 일치하는지 확인하는 기능을 제공합니다. 주로 파일 및 디렉터리 관리 작업에서 사용됩니다.
텍스트파일1.txt 텍스트파일2.txt 텍스트파일3.txt |
7. 데이터 압축
파이썬에서는 데이터 압축 및 아카이브 생성을 위한 여러 모듈을 제공합니다. 이러한 모듈들을 사용하면 다양한 압축 및 아카이브 형식으로 데이터를 처리할 수 있습니다.
1. zlib: 데이터를 압축하거나 해제할 때 사용하는 모듈
130000 293 |
b'x\x9c\xed\xc71\r\x00 \x0c\x000+\xe0f\'&H8\x16\xf6\xf0\xe0\x1e\x1f\xa4\xfd\x1a3\xb3\xda\xb8g\xd5\xee!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""?\xe6\x01le79' |
130000 |
2. gzip: 내부적으로 zlib 알고리즘을 사용
130000 |
3. zipfile: 여러개 파일을 zip 확장자로 합쳐 압축할 때 사용
4. tarfile: 여러개 파일을 tar 확장자로 합쳐서 압축할 때 사용
'Python > 개념' 카테고리의 다른 글
Day 10. 과제: 디렉토리 관련 프로그램 (0) | 2024.03.24 |
---|---|
Day 10. 디렉토리 관리 프로그램 (0) | 2024.03.22 |
Day 9-1. 변수 타입 어노테이션 (0) | 2024.03.21 |
Day 8-2. 파일 입출력 (0) | 2024.03.20 |
Day 8-1. 파이썬 모듈 (0) | 2024.03.20 |