Search

파일 읽고 쓰기

기본 경로 확인(홈 디렉토리)

from pathlib import Path print(Path.home())
Python
복사
C:\Users\User

작업 디렉토리 경로 확인

print(Path.cwd())
Python
복사
C:\Users\User\python

디렉토리 안 파일 확인

files = Path.cwd().glob('*') # 또는 Path.cwd().glob('*.*') # text 확장자 파일 확인 Path.cwd().glob('*.txt') for f in files: print(f)
Python
복사

1. 기본적인 파일 읽고 쓰기

1-1. 파일 열기 / 쓰기 / 닫기

f = open(’파일경로명’, ‘w’)
f.write(’파일에 쓸 문장’)
f.close()
# 기존에 파일이 없다면 새로 만들고 # 기존에 있다면 기존 파일을 없애고 새로 생성 f = open('MyFile.txt', 'w') # 파일 쓰기 f.write('안녕하세요?\n') # 파일 닫기 f.close()
Python
복사

참고. 현 디렉토리에 새로운 디렉토리(폴더) 만들기

# 현 디렉토리에 Files 라고 하는 폴더를 생성 Path('Files').mkdir(exist_ok=True)
Python
복사

1-2. 파일 열기 / 읽기 / 닫기

f = open(’파일경로명’, ‘r’)
print(f.read())
f.close()
# 파일 열기 f = open('Files/MyFile.txt', 'r') # 내용 읽기 print(f.read()) # 파일 닫기 f.close()
Python
복사

1-3. 파일 내용 추가

f = open(’파일경로명’, ‘a’)
기존 파일이 있을 경우, 내용을 추가하고 기존 파일이 없을 경우, 새 파일을 만들어준다. ( ‘w’)
f.write(’파일에 쓸 문장’)
f.close()
# 파일 열기 f = open('MyFile.txt', 'a') # 내용 추가 f.write('만나서 반갑습니다!') # 파일 닫기 f.close()
Python
복사

1-4. 파일이 존재할 경우, 오류 발생

f = open(’파일 경로명’, ‘x’)
f.wirte(’파일에 쓸 문장’)
f.close()
# 파일 열기 f = open('MyFile.txt', 'x') # 내용 쓰기 f.write('만나서 반갑습니다!') # 파일 닫기 f.close()
Python
복사
x 모드로 파일을 열 경우, 기존 파일이 있다면 오류를 발생시킨다. 기존 파일이 없다면, ‘w’ 모드와 같이 새 파일을 생성한다. FileExistsError: [Errno 17] File exists: 'MyFile.txt'

2. 파일을 다루는 편리한 메서드

2-1. writelines() 메서드

행 리스트파일에 기록할 수 있다.
hello = ['안녕하세요?\n', '만나서 반갑습니다.\n', '우리 사이좋게 잘 지내요.\n'] f = open('MyFile.txt', 'w') f.writelines(hello) f.close()
Python
복사
f = open('MyFile.txt', 'r') print(f.read()) f.close()
Python
복사
안녕하세요? 만나서 반갑습니다. 우리 사이좋게 잘 지내요.

2-2. readlines() 메서드

모든 행 한번에 읽을 수 있다.
결과는 리스트가 되므로, 반복문으로 한 행씩 읽을 수 있다.
f = open('MyFile.txt', 'r') result = f.readlines() f.close() print(result)
Python
복사
['안녕하세요?\n', '만나서 반갑습니다!\n', '우리 사이좋게 잘 지내요.\n']
# 리스트에 담긴 readlines로 읽어들인 문장들을 한 행씩 출력해보자. for txt in result: print(txt, end='')
Python
복사
안녕하세요? 만나서 반갑습니다. 우리 사이좋게 잘 지내요.

2-2. readline() 메서드

행 단위로 읽을 수 있다.
결과는 문자열이 된다.
f = open('MyFile.txt', 'r') print(f.readline()) print(f.readline()) print(f.readline()) f.close()
Python
복사
안녕하세요? 만나서 반갑습니다! 우리 사이좋게 잘 지내요.
# 위의 readline을 반복문을 이용해서 모든 행을 읽어들이는 코드 f = open('MyFile.txt', 'r') result = f.readline() while result: # 즉, 값이 있을 때까지 print(result, end='') result = f.readline() f.close()
Python
복사
안녕하세요? 만나서 반갑습니다. 우리 사이좋게 잘 지내요.