728x90
glob
파일을 찾을 때 자주 사용되는 모듈이다. 파일 탐색기에서 파일을 탐색하듯, 파이썬 코드에서 파일을 탐색할 수 있는 게 glob 모듈이다.
glob는 패턴을 이용하여 파일을 검색할 때 사용하는 모듈이고 여기서 패턴이라 하면, 파일이 어떤 특징을 갖는지, 뭐 어떤 확장자를 갖는지, 특정 단어가 포함된 파일을 찾는다거나 이런 패턴을 말한다.
파일 확장자로 찾기
import glob
import os
# 현재 디렉토리 확인
os.getcwd()
>>> '/Users/yijun/study/workspace/python/library/ch04. [파일디렉터리] 업무효율 향상을 위한 폴더 관리 프로그램 만들기'
# txt 파일 찾기 - 현재 경로
for filename in glob.glob("*.txt"):
print(filename)
>>> org_data.txt
# txt 파일 찾기 - 하위 경로
for filename in glob.glob("**/*.txt"):
print(filename)
>>> sample/새파일2.txt
>>> sample/새파일3.txt
>>> sample/새파일1.txt
>>> fuzzy_folder/단축키모음.txt
>>> fuzzy_folder/부장님지시사항_220910.txt
파일명 글자수로 찾기
- 글자수 4: 물음표 4개
- 모든 확장자 가능: .*
- recursive=True: 현재 경로와 하위 경로 모두 포함
for filename in glob.glob("????.*", recursive=True):
print(filename)
>>> list.pkl
# 글자수 10
for filename in glob.glob("??????????.*", recursive=True):
print(filename)
>>> dictionary.pkl
>>> compressed.txt.gz
문서열 포함 파일명 찾기
- a-z까지 알파벳으로 이루어진 네글자 파일명을 찾아라
for filename in glob.glob("**/[a-z][a-z][a-z][a-z].*", recursive=True):
print(filename)
>>> list.pkl
fnmatch
fnmatch 는 glob 와 동일하게 특정한 패턴을 따르는 파일명을 찾아주는 모듈이다. 파일명 매칭 여부를 True, False 형태로 반환하기 때문에 os.listdir() 함수와 함께 사용하는 것이 특징이다.
import fnmatch
import os
탐색 조건
- 파일명은 '새'로 시작한다.
- 확장자는 텍스트 파일을 의미하는 .txt 이다.
- 확장자를 제외한 파일명의 길이는 4이다.
- 파일명의 마지막 문자는 숫자이다.
for filename in os.listdir('./sample'):
if fnmatch.fnmatch(filename, '새??[0-9].txt'):
print(filename)
shutil
- shutil 은 파일을 복사하거나 이동할때 사용하는 내장 모듈이다.
- copy, copy2 : 파일 복사
- move : 파일 이동, 확장자 변경
import shutil
# 파일 복사하기
shutil.copy("./sample/새파일1.txt", "./sample/새파일1_복사본.txt")
# 메타정보 복사
# 수정일, 생성일 등 메타 정보도 동일하게 복사된다.
shutil.copy2("./sample/새파일1.txt", "./sample/새파일1_복사본_메타.txt")
# 확장자 바꾸기
# move는 이동에서 사용되는데 확장자도 바꿀 수 있다.
shutil.move("./sample/새파일1_복사본.txt", "./sample/새파일1_복사본.py")
# 파일 이동하기
shutil.move("./sample/새파일1_복사본.txt", "새파일1_복사본.txt")
shutil.move("./sample/새파일1_복사본_메타.txt", "새파일1_복사본_메타.txt")
'프로그래밍 언어 > Python' 카테고리의 다른 글
[numpy] 자동 형 변환, 기본 연산 (0) | 2024.08.04 |
---|---|
[numpy] arange, linspace (0) | 2024.08.04 |
파일 압축 - zlib, gzip, zipfile, tarfile (0) | 2024.08.04 |
파일 읽기, 저장 - Pickle 모듈 (0) | 2024.08.04 |
클로저와 데코레이터 (0) | 2024.08.04 |