이전 공부 내용에서는 파일을 생성하는 것 까지 진행을 해보았습니다.
이번에는 생성된 파일을 쓰기 모드로 열어 내용 쓰기에 대해 공부해 보겠습니다
파이썬 입출력
파일 읽고 쓰기
쓰기 모드로 파일을 열고 내용 쓰기
이전 포스팅에서는 파일을 쓰기 모드로 열어보는 것을 해봤습니다. 그 안에 내용은 쓰지 않았죠.
이번에는 문자열을 파일에 쓰는 것을 해보겠습니다.
# write_test.py
file = open(r"d:\test\신규파일.txt", 'w')
for i in range(1, 11):
text = "%d 번째 줄 입니다.\n" % i
file.write(text)
file.close()
위에 코드를 실행하고 해당 경로로 가서 파일을 열어보면 아래처럼 결과가 나옵니다.
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
다른 코드를 살펴보겠습니다.
for i in range(1, 11):
data = "%d 번째 줄 입니다.\n" % i
print(data)
위 코드의 결과는 아래와 같습니다.
1 번째 줄 입니다.
2 번째 줄 입니다.
3 번째 줄 입니다.
4 번째 줄 입니다.
5 번째 줄 입니다.
6 번째 줄 입니다.
7 번째 줄 입니다.
8 번째 줄 입니다.
9 번째 줄 입니다.
10 번째 줄 입니다.
앞서 open을 사용해 쓰기모드에서 내용을 쓴 코드와 그 다음 print 문으로 출력한 코드의 차이점은 data 를 출력하는 방식입니다.
두 번째 방식은 이전에 계속 진행했었던 모니터 화면에 출력하는 방식이고,
첫 번째 방식은 모니터 화면대신 생성한 파일에 쓰기모드로 열어 데이터를 입력하는 방식입니다.
print 대신 파일 객체인 file 의 write 함수를 사용한 것 말고는 차이가 거의 없습니다.
그리고 똑같이 줄바꿈을 해줬는데 write 함수를 썼을 때는 정상적으로 한번의 줄바꿈으로 표현이 되어 있는데 print 문을 썼을 때는 for 문으로 반복해서 진행을 하다 보니 줄바꿈이 한번 더 표현이 된 듯 합니다.
파일 읽기의 여러 가지 방법
파일을 읽는 방법에는 여러가지가 있습니다.
readline 함수 이용
먼저 reading 함수를 사용하는 방법에 대해 알아보겠습니다.
# reading_test.py
file = open(r"d:\test\신규파일.txt", 'r')
line = file.readline()
print(line)
file.close()
위 코드를 보면 신규파일.txt 를 읽기모드 ‘r’ 로 파일을 열고 readline() 명령을 사용해서 해당 파일의 첫 번째 줄을 읽어 화면에 보여주는 기능을 하고 있습니다.
기존에 만들어 놨던 신규 파일이 그대로 있으면 그 파일의 첫 번째 줄을 화면에 출력합니다.
1 번째 줄 입니다.
readlines 함수 이용
여기서 만약 첫 번째 줄만이 아니라 전체 줄을 화면에 출력하려면 어떻게 할까요?
# reading_all_test.py
file = open(r"d:\test\신규파일.txt", 'r')
while True:
line = file.readlines()
if not line: break
print(line)
file.close()
위 코드를 실행해 보면 이전에 print 문으로 출력 했던 것과 동일하게 나오는 것을 확인 할 수 있습니다.
['1 번째 줄 입니다.\n', '2 번째 줄 입니다.\n', '3 번째 줄 입니다.\n', '4 번째 줄 입니다.\n', '5 번째 줄 입니다.\n', '6 번째 줄 입니다.\n', '7 번째 줄 입니다.\n', '8 번째 줄 입니다.\n', '9 번째 줄 입니다.\n', '10 번째 줄 입니다.\n']
readlines 함수를 사용하면 파일의 모든 줄을 읽어서 하나의 줄 씩 리스트 요소로 가지고 있게 됩니다.
직전에 사용했던 readline 함수와 차이점은 끝에 ‘s’ 가 하나 더 붙어 있다는 걸 유의해야 할 듯 합니다.
다음 포스팅에서는 파일 읽기의 여러가지 방법에 대해 좀 더 알아보겠습니다.
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.