지난 포스팅에 이어서 파이썬 파일 읽기와 파일에 내용 추가하기 에 대해 공부해 보겠습니다.
파이썬 입출력
파일 읽고 쓰기
파일을 읽는 여러가지 방법
줄바꿈 문자(\n) 제거하는 방법
파일을 읽어 올 때 줄 끝에 줄 바꿈 문자(엔터값 또는 개행값이라고 합니다) \n 를 제거해야 할 경우가 종종 생깁니다.
다음 코드는 줄 바꿈 문자가 있는 상태에서 그냥 출력해 본 코드입니다.
file = open(r"d:\test\신규파일.txt", 'r')
lines = file.readlines()
for line in lines:
print(line)
file.close()
결과를 보면 줄 바꿈 문자로 인해 줄 사이에 한 줄씩 비어 있는 것이 보입니다
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
다음 코드처럼 strip 함수를 사용해서 줄 바꿈 문자를 제거 해보겠습니다
file = open(r"d:\test\신규파일.txt", 'r')
lines = file.readlines()
for line in lines:
line = line.strip() # 줄 끝의 줄 바꿈 문자를 제거합니다.
print(line)
file.close()
줄 바꿈 문자가 제거되어 빈줄 없이 출력이 되었습니다.
그냥 보기에도 확실히 위의 예 보다는 보기가 훨씬 좋습니다.
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
read 함수 사용하기
앞에 포스팅에서 readline 과 readlines 함수를 사용 해봤는데 이번에는 read 함수를 사용해 보겠습니다.
file = open(r"d:\test\신규파일.txt", 'r')
file_view = file.read()
print(file_view)
file.close
아래 결과 처럼 read 함수는 파일 전체 내용을 문자열로 리턴하게 됩니다.
결국 아래 결과가 신규파일.txt 의 전체 내용이라고 보시면 됩니다.
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
파일 객체를 for 문과 함께 사용
파일 객체를 for 문과 함께 사용하는 방법도 있습니다.
file = open(r"d:\test\신규파일.txt", 'r')
for file_view in file:
print(file_view)
file.close
for 문을 사용하여 파일을 줄 단위로 읽어온 결과입니다.
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
파일에 새로운 내용 추가하기
앞선 예제 코드에서는 읽기 모드로(‘r’) 로 파일을 열어 봤습니다.
쓰기모드(‘w’) 로 파일을 열게 되면 이전에 존재하는 내용이 모두 사라진다고 공부했었습니다.
하지만 무조건 적으로 이렇게 모든 내용이 사라지게 하면서 파일을 작성할 수는 없을 겁니다.
이럴때 사용하는 것이 추가모드(‘a’) 입니다.
file = open(r"d:\test\신규파일.txt", 'a')
for i in range(11, 20):
file_view = "%d 번째 줄 입니다.\n" % i
file.write(file_view)
file.close
파일이 잘 작성이 되었는지 열어 보겠습니다.
아래처럼 기존에 10번째 까지 작성되었던 파일에 추가로 데이터가 들어간 것을 확인 할 수 있습니다.

with문 사용하기
지금까지 사용한 파일을 열고 닫는 방식과는 다르게 with 문을 사용하여 파일을 열고 닫아보겠습니다.
이전에는 파일을 open 하면 끝에는 항상 close 를 해주어야 했습니다.
with open(r"d:\test\python_test.txt", "w") as file:
file.write("Python's favorite food is perl")
with 문을 사용하게 되면 with 문이 속해 있는 문장을 벗어나면 열려있는 파일 객체가 자동으로 close 하게 됩니다.
아래 처럼 파일이 잘 생성된 것을 확인 할 수 있습니다.

- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.