728x90
반응형
SMALL
1. glob.glob() 이용하여 확장자로 파일 찾기
1-1. 현재 폴더에서 파일 찾기
# 현재 경로 알아보기
os.getcwd()
>>> 'C:\\yesung\\jupyter'
# glob으로 .txt파일 전체 불러오기
for filename in glob.glob('*.txt'): # 모든 txt파일을 찾기
print(filename)
>>> # 현재 폴더에 .txt 파일 없음!
1-2. 하위 폴더에서 파일 찾기
for filename in glob.glob('**/*.txt):
print(filename)
>>>
sample\새파일1.txt
sample\새파일2.txt
sample\새파일3.txt
sample\새파일4.txt
sample\새파일5.txt
✅재귀적으로 모든 txt 파일과 모든 디렉토리를 찾는 방법
for filename in glob.glob('**/*.txt', recursive=True):
print(filename)
>>> 주피터노트북.txt #jupyter 폴더
sample\새파일1.txt
sample\새파일2.txt
sample\새파일3.txt
sample\새파일4.txt
sample\새파일5.txt
✅ 재귀적으로 현재폴더와 하위 폴더에서 파일명이 4글자인 모든 파일 찾기
for filename in glob.glob('????.*', recursive=True):
print(filename)
>>> list.pkl
dict.pkl
✅ 재귀적으로 현재폴더와 하위 폴더에서 파일명이 6글자인 모든 파일 찾기
for filename in glob.glob('??????.*', recursive=True): # 글자수 6개
print(filename)
>>> 주피터노트북.txt
✅ 재귀적으로 현재폴더와 하위 폴더에서 파일명이 4글자 소문자 영어이고 모든 파일 찾기
# 대문자 [A-Z], 대소문자 둘다 [a-zA-Z]
for filename in glob.glob('[a-z][a-z][a-z][a-z].*', recursive=True):
>>> dict.pkl
list.pkl
✅ 하위 폴더에서 파일명에 '새파일' 이 들어가는 모든 파일 찾기
for filename in glob.glob('**/새파일*.*'):
print(filename)
>>> sample\새파일1.txt
sample\새파일2.txt
sample\새파일3.txt
sample\새파일4.txt
sample\새파일5.txt
✅ 하위 폴더에서 파일명에 '프로젝트'가 들어가는 모든 파일 찾기
for filename in glob.glob('**/*프로젝트*.*'):
print(filename)
>>> project\25_프로젝트 실습.ipynb
project\프로젝트 개요.txt
2. fnmatch
- glob과 동일하게 특정한 패턴을 따르는 파일명을 찾아주는 모듈
- 파일명 매칭 여부를 True, False 형태로 반환하기 때문에 os.listdir() 함수와 함께 사용
✅ 파일명은 '새'로 시작하고 확장명은 .txt
확장자를 제외한 파일명의 길이는 4개 이며, 파일명의 마지막 문자는 숫자인 파일 찾기
import fnmatch
print(os.listdir('./sample'))
>>> ['새파일1.txt', '새파일2.txt', '새파일3.txt', '새파일4.txt', '새파일5.txt']
for filename in os.listdir('./sample'):
# filename과 '새??[0-9].txt'이 같으면 True
if fnmatch.fnmatch(filename, '새??[0-9].txt'): # [0-9]: 숫자
print(filename)
>>>
새파일1.txt
새파일2.txt
새파일3.txt
새파일4.txt
새파일5.txt
3. shutil
- 파일을 복사하거나 이동할 때 사용하는 내장 모듈
3-1. 파일 복사하기
- copy()
✅ '새파일1.txt' 파일을 복사하기
import shutil
shutil.copy('./sample/새파일1.txt', './sample/새파일1_복사본.txt')
>>> './sample/새파일1_복사본.txt'
복사가 잘 되었다. 😀
3-2. 파일 이동하기
- move()
- 동일 폴더에 확장명을 바꿔서 이동시켜주면 확장명이 바뀐 파일로 덮어씀
✅ sample 폴더에 있는 새파일1_복사본.txt를 상위 폴더로 이동시키기
shutil.move('./sample/새파일1_복사본.txt','./새파일1_복사본.txt')
>>> './새파일1_복사본.txt'
상위 폴더로 이동 되었다.
✅ 파일의 확장명 바꾸기
shutil.move('./새파일1_복사본.txt', './새파일1_복사본.py')
>>> './새파일1_복사본.py'
txt파일이 py파일로 바뀌었다.
shutil.move('./새파일1_복사본.py', './새파일1_복사본.txt')
>>> './새파일1_복사본.txt'
다시 txt 파일로 돌려주었다.
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 파이썬으로 파일 정리하기! 📂 (0) | 2023.03.14 |
---|---|
[파이썬, Python] 파일 입출력 라이브러리 - 3️⃣ zlib, gzip, zipfile, tarfile_파이썬으로 파일 압축/압축 해제하기! (1) | 2023.03.14 |
[파이썬, Python] 파일 입출력 라이브러리 - 1️⃣fileinput & pickle_파일 읽기 및 저장하기! (0) | 2023.03.14 |
[파이썬, Python] 주피터 노트북 (Jupyter notebook) 설치하기 & 주피터 노트북 사용하기! (1) | 2023.03.14 |
[파이썬, Python] 변수 타입 어노테이션에 대해 알아보자! 🧐 (0) | 2023.03.14 |