1. 파일 읽기와 쓰기
import fileinput
import os
import glob
파이썬의
⩥ os 모듈은 운영 체제와 상호 작용하는 많은 함수와 유틸리티를 제공합니다. 이 모듈을 사용하면 파일, 디렉터리 또는 운영 체제에 관한 작업을 수행할 수 있습니다.
⩥ glob 모듈은 파일과 폴더 이름을 찾을 때 사용하는 파이썬의 도구입니다. glob는 특정 패턴에 일치하는 파일이나 폴더 이름을 쉽게 찾아줍니다.
⩥ fileinput 모듈은 파이썬에서 여러 입력 스트림을 동시에 순회하는 데 유용합니다. 이 모듈의 주요 용도는 명령줄에서 명시된 여러 파일을 동시에 읽는 스크립트를 작성하는 것입니다.
# 현재 경로 확인
os.getcwd()
# 디렉토리 안에 파일(디렉토리)을 확인하고 리스트로 반환
os.listdir(os.getcwd())
>> ['내사진.jpg', '텍스트파일2.txt', '텍스트파일1.txt', '텍스트파일3.txt']
# 지정한 경로에 있는 지정한 파일들을 확인하고 '경로와 파일명' 리스트로 반환
glob.glob(os.path.join('data/', '*.txt'))
>> ['data/텍스트파일2.txt', 'data/텍스트파일1.txt', 'data/텍스트파일3.txt']
# 'data/' 디렉토리 아래에 있는 모든 텍스트 파일을 읽고, 각 파일에 대해 한 줄씩 처리
with fileinput.input(glob.glob(os.path.join('data/', '*.txt'))) as f:
for line in f:
print(line)
# inplce = True 를 설정하면 수정 모드로 사용 가능.
# 기본값 False는 읽기 모드
# 각 파일의 첫번째 라인을 찾아 변경하기
with fileinput.input(txt_files, inplace = True) as f:
for line in f:
if f.isfirstline():
print('첫번째 라인이야!', end='\n')
else:
print(line,end='')
# 키워드를 찾아 원하는 텍스트로 치환하기
with fileinput.input(txt_files, inplace = True) as f:
for line in f:
if '3.'in line:
print(line.replace('3.', '세번째.'), end='')
else:
print(line,end='')
# 하위 경로의 txt파일 찾기
# 만약 여러 파일 안에 txt 파일이 있다면 모든 하위경로에 있는 txt 파일을 전부 가져온다.
for filename in glob.glob('**/*.txt'):
print(filename)
data/텍스트파일2.txt
data/텍스트파일1.txt
data/텍스트파일3.txt
# recursive=True 현재 경로 포함해서 파일 찾기.
# 파일명 글자수로 찾기
# * 뜻은 확장명 상관없이 3글자 파일 모두 찾는다는 뜻
for filename in glob.glob('???.*', recursive=True):
print(filename)
# 문자열 패턴 포함 파일명 찾기
for filename in glob.glob('[a-z][a-z][a-z][a-z][a-z][a-z].*',recursive=True):
print(filename)
for filename in glob.glob('[가-힣][가-힣].*',recursive=True):
print(filename)
위의 다양한 모듈과 함수들을 이용하여 파일과 디렉토리의 관리와 수정이 가능해집니다.
'파이썬' 카테고리의 다른 글
파이썬 스페셜 메소드 (0) | 2023.09.17 |
---|---|
파일 입출력 라이브러리2 (0) | 2023.09.14 |
super()메소드와 다중상속 (0) | 2023.09.13 |
상속 (0) | 2023.09.13 |
객체지향과 클래스 (0) | 2023.09.12 |