🗂️

4.7.4. 파일 입출력

 

1. 파일 읽어보기

먼저 알아볼 것은 파이썬으로 파일을 읽고(read) 쓰는(write) 것입니다. colab에서 실행해 보도록 하겠습니다.
 
f = open('python.txt', 'w') # r, w, a f.close()
 
실행해보면 colab 화면 좌측에 python.txt라고 텍스트 파일이 생성된 것을 볼 수 있습니다.
 
notion imagenotion image
 
파이썬의 파일을 생성할 때 open( )이라는 내장함수를 사용합니다. 이 때 생성할 파일의 이름과 파일 모드를(읽기, 쓰기, 추가하기) 같이 입력해 주어야 합니다.
 

2. 읽기 모드에 관하여

f = open('python.txt', 'w') # r, w, a f.close()
위와 같이 f = open("열어볼 파일 명+확장자명", '원하는 읽기모드')와 같은 형식으로 나타냅니다. 모드에는 다음과 같은 것들이 존재합니다.
 
notion imagenotion image
 

3. 파일 쓰기

방금 생성된 'python.txt' 파일을 더블클릭하여 보면 빈 파일이라는 사실을 알 수 있습니다. 내용을 넣지 않고 생성만 했기 때문인데요. 이번에는 파일을 쓰는(write) 방법에 대해 알아보겠습니다.
f = open('python.txt', 'w') s = '' for i in range(1, 6): s += f'{i}명 참여 중입니다. \n' f.write(s) f.close()
 
파일을 다시 더블클릭하여 열어보시면 좀 전에는 없던 내용이 새로 생성이 되어 있는 것을 볼 수 있습니다.
 
notion imagenotion image
 

4. 파일 읽기

파일을 읽는 방법에는 4가지 방법이 있습니다.

4.1 readline( )

readline( ) 함수를 이용하여 방금 생성한 파일을 일어보도록 하겠습니다.
f = open('python.txt', 'r') while True: line = f.readline() if not line: break print(line) f.close()
 
그 다음 실행해 보면 아래와 같이 출력되는 화면을 볼 수 있습니다. 개행이 2줄씩 된 것은 뒤에 설명해 드리도록 하겠습니다.
 
notion imagenotion image

4.2 readlines( )

readline( )은 파일의 텍스트 한 줄을 출력해 줄 뿐이지만, readlines는 전체 라인을 읽어옵니다.
f = open('python.txt', 'r') lines = f.readlines() for line in lines: print(line) f.close()
 
실행 결과는 아래와 같습니다.
 
notion imagenotion image

4.4 read( )

read 함수를 사용하면 파일의 전체 내용을 읽어올 수 있습니다.
f = open('python.txt', 'r') data = f.read() print(data) f.close()
그 후 콘솔창에서 확인해 보시면 더 간단한 방법으로 파일 전체를 읽어본 것을 확인할 수 있습니다.
 
notion imagenotion image
위에서 작성했던 코드도 개행이 한 줄만 되도록 아래와 같이 수정이 가능합니다. 개행이 2번 되었던 이유는 print 함수가 이미 개행 옵션을 가지고 있기 때문입니다.
f = open('python.txt', 'r') lines = f.readlines() for line in lines: print(line, end='') f.close()

5. 내용 수정

다음은 이미 생성된 파일에 내용을 수정하는 방법입니다.
 
f = open('python.txt', 'a') s = '' for i in range(6, 11): s += f'{i}명 참여 중입니다. \n' f.write(s) f.close()
 
실행시킨 후 파일을 다시 열어보시면 아래와 같이 파일에 텍스트가 추가된 것을 볼 수 있습니다.
 
notion imagenotion image

6. 파일 생성과 내용 추가를 동시에

위에서 파일을 생성하고 그 파일에 텍스트를 쓰는 방법에 대해 배웠습니다. with문을 사용하면 open과 close를 한꺼번에 할 수 있습니다. 다음과 같이 입력해봅시다.
 
with open('test.txt', 'w') as f: f.write('Life is too short, you need python')
 
생성된 test.txt 파일로 들어가면 텍스트가 포함되어 있는 것을 알 수 있습니다.
 
notion imagenotion image