Python 심화 학습5(파일과 디렉토리)

CheolSoonKang·2024년 2월 27일

개념정리

목록 보기
15/18

파일과 디렉토리

glob 패키지를 활용한 파일 및 디렉토리 목록 확인

path = glob.glob("./venv/*")
pprint(path)
# result output
"""
['./venv\\Include', './venv\\Lib', './venv\\pyvenv.cfg', './venv\\Scripts']
"""

./venv/*은 venv 폴더 내 모든 파일들을 의미합니다.

path = glob.glob("./venv/**", recursive=True)
pprint(path)
# result output
"""
['./venv\\',
 './venv\\Include',
 './venv\\Lib',
 './venv\\Lib\\site-packages',
 './venv\\Lib\\site-packages\\autopep8-2.0.1.dist-info',
 ...
]
"""

**은 해당 경로 하위 모든 파일을 의미하며, recursive 플래그와 같이 사용합니다.
recursive를 True로 설정하면 디렉토리 내부의 파일들을 재귀적으로 탐색합니다.

path = glob.glob("./venv/**/*.py", recursive=True)
pprint(path)
# result output
"""
['./venv\\Lib\\site-packages\\autopep8.py',
 './venv\\Lib\\site-packages\\pycodestyle.py',
 './venv\\Lib\\site-packages\\pip\\__init__.py',
 './venv\\Lib\\site-packages\\pip\\__main__.py',
 './venv\\Lib\\site-packages\\pip\\__pip-runner__.py',
 ...
]
"""

.py와 같이 작성 시 특정 확장자를 가진 파일들만 볼 수 있습니다.
./venv/**/
.py는 venv 하위 모든 폴더들을 재귀적으로 탐색하며 .py 확장자 파일을 탐색합니다.

open을 활용한 파일 다루기

# case 1. open 함수를 사용해 파일 열기
f = open("file.txt", "w", encoding="utf-8")
f.write("파이썬 파일 쓰기 테스트!\n")
# open 함수를 실행하면 python 스크립트가 끝날때 까지 파일이 열려있게 됩니다.
# 때문에 파일에 대한 작업이 끝나면 close()를 사용해 파일을 닫아줘야 합니다.
f.close()
  • "file.txt" : 파이썬에서 사용할 파일을 지정합니다.
  • "w" : 파일을 쓰기 모드로 엽니다. 만약 파일이 없다면 새로 생성합니다.
  • w , r, a등 다양한 mode가 존재하며, 더 많은 mode의 종류는 아래의 링크에서 확인가능하다
    (https://docs.python.org/ko/3/library/functions.html?highlight=open#open)
  • encoding : 파일의 encoding 형식을 지정합니다.
with open("file.txt", "a", encoding="utf-8") as w:
    w.write("파이썬 내용 추가 테스트!")
# r 모드는 파일을 읽기 모드로 엽니다.
with open("file.txt", "r", encoding="utf-8") as r:
    # readlines는 파일의 모든 내용을 list 자료형으로 한번에 읽어들입니다.
    print(r.readlines())
  • open을 with와 같이 사용하면 with 구문이 끝날 때 자동으로 파일이 close 됩니다.
  • 따라서, with를 사용할 때는 별도로 close 해주지 않아도 됩니다.
  • a 모드는 기존 내용을 유지한 상태로 추가합니다.
profile
소통하며 성장하는 늦깎이 개발자

0개의 댓글