파이썬 파일 처리 마스터: 텍스트 파일 생성, 읽기, 쓰기, 열기
파이썬 파일 처리 마스터: 텍스트 파일 생성, 읽기, 쓰기, 열기
파이썬 파일 처리
파이썬에서는 파일을 읽고 쓰기 위해 외부 라이브러리를 임포트할 필요가 없습니다. 파일을 생성, 쓰기, 읽기 위한 내장 함수를 제공합니다.
이 튜토리얼에서 배울 내용:
- 파이썬에서 텍스트 파일 열기
- 파이썬에서 텍스트 파일 생성
- 파이썬에서 텍스트 파일에 추가(Append)
- 파이썬에서 파일 읽기
- 파이썬에서 파일 줄 단위 읽기
- 파이썬 파일 모드
파이썬에서 텍스트 파일 열기
파일을 열려면 내장 open 함수를 사용합니다. 파이썬 파일 열기 함수는 파일 객체를 반환하며, 이 객체에는 파이썬에서 파일을 열기 위한 다양한 작업을 수행하는 메서드와 속성이 포함되어 있습니다.
파이썬 open 파일 함수 문법:
file_object = open("filename", "mode")
여기서,
- filename: 파일 객체가 연 파일의 이름.
- mode: 파일 객체의 속성으로, 파일이 어떤 모드로 열렸는지 알려줌.
이 모드들에 대한 자세한 내용은 아래에서 설명.
파이썬에서 텍스트 파일 생성
파이썬 파일 쓰기로 .txt 파일(guru99.txt)을 아래 코드로 생성할 수 있습니다:
1단계) .txt 파일 열기
f = open("guru99.txt", "w+")
- 변수 "f"를 선언해 guru99.txt라는 파일을 엽니다. open은 2개 인자를 받습니다: 열고 싶은 파일, 파일에 수행할 권한/작업 종류를 나타내는 문자열.
- 인자에 "w" 문자를 사용했는데, 이는 파이썬 파일 쓰기를 의미하며 라이브러리에 파일이 없으면 생성합니다.
- 플러스 기호는 파이썬 파일 생성 작업 시 읽기와 쓰기 모두 허용함을 나타냅니다.
2단계) 파일에 데이터 입력
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
- 10개 숫자 범위로 for 루프 실행.
- write 함수로 파일에 데이터 입력.
- 파일에 반복할 출력은 "this is line number"로, 파이썬 write 파일 함수로 선언하고 %d(정수 표시) 사용.
- 즉, 작성 중인 줄 번호를 넣고 캐리지 리턴과 줄바꿈 문자를 추가.
3단계) 파일 인스턴스 닫기
f.close()
- 저장된 guru99.txt 파일 인스턴스를 닫음.
파이썬 텍스트 파일 생성 예제 실행 결과:

텍스트 파일(우리의 경우 "guru99.txt")을 클릭하면 이런 모습:

파이썬에서 텍스트 파일에 추가(Append)
이미 존재하는 파일에 새 텍스트를 추가하거나 새 파일에 추가할 수 있습니다.
1단계)
f = open("guru99.txt", "a+")
다시 플러스 기호가 보이는데, 파일이 없으면 새로 생성함을 의미. 우리 경우 이미 파일이 있으므로 파이썬 파일 추가 작업에 새 파일 생성 불필요.
2단계)
for i in range(2):
f.write("Appended line %d\r\n" % (i+1))
추가 모드로 파일에 데이터 쓰기.

"guru99.txt" 파일에서 출력 확인. 기존 파일에 파이썬 파일 추가 작업으로 새 데이터가 추가됨.

파이썬에서 파일 읽기
파이썬에서 .txt 파일을 "읽기 모드"(r)로 호출해 읽을 수 있습니다.
1단계) 읽기 모드로 파일 열기
f = open("guru99.txt", "r")
2단계) 코드에서 mode 함수로 파일이 열기 모드인지 확인. 맞으면 진행
if f.mode == 'r':
3단계) f.read로 파일 데이터 읽어 변수 contents에 저장
contents = f.read()
4단계) 파이썬 텍스트 파일 읽기 위해 contents 출력
파이썬 파일 읽기 예제 출력:

파이썬에서 파일 줄 단위 읽기
데이터가 너무 커서 한 번에 읽기 어려울 때 줄 단위로 읽을 수 있습니다. readlines()로 데이터를 읽기 쉬운 모드로 분리.

f1 = f.readlines() 코드로 파이썬에서 파일 줄 단위 읽기 실행 시 각 줄이 분리되어 읽기 쉬운 형식으로 표시. 우리 경우 줄이 짧고 읽기 쉬워 읽기 모드와 비슷해 보이지만, 복잡한 데이터 파일이면 이 코드가 유용.
파이썬 파일 모드
다양한 파이썬 파일 모드:
| 모드 | 설명 |
| 'r' | 기본 모드. 파일 읽기용으로 열기. |
| 'w' | 파일 쓰기용으로 열기. 파일이 없으면 새로 생성. 존재하면 파일 내용 잘라냄(truncate). |
| 'x' | 새 파일 생성. 파일이 이미 있으면 작업 실패. |
| 'a' | 파일 추가 모드로 열기. 파일이 없으면 새로 생성. |
| 't' | 기본 모드. 텍스트 모드로 열기. |
| 'b' | 바이너리 모드로 열기. |
| '+' | 읽기와 쓰기(업데이트)용으로 파일 열기. |
파이썬 print() 파일 예제 전체 코드:
파이썬 2 예제
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# 파일 다시 열고 내용 읽기
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print contents
# 또는, readlines로 개별 줄을 리스트로 읽기
# fl = f.readlines()
# for x in fl:
# print x
if __name__ == "__main__":
main()
파이썬 3 예제
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# 파일 다시 열고 내용 읽기
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print(contents)
# 또는, readlines로 개별 줄을 리스트로 읽기
# fl = f.readlines()
# for x in fl:
# print(x)
if __name__ == "__main__":
main()
요약
- 파이썬으로 파일 읽기, 쓰기, 삭제 가능.
- 파이썬 텍스트 파일 생성:
open("filename","w+"). +는 읽기/쓰기 권한으로 파이썬 텍스트 파일 열기 지시.
- 기존 파일에 데이터 추가나 파이썬 print to file:
open("Filename", "a").
- 파일 전체 내용 읽기: 파이썬 read from file 함수.
- 파일 내용을 한 줄씩 읽기: readlines 함수.