관리 메뉴

정리왕

파이썬 파일 읽고 쓰기 본문

6.개발/파이썬 공부하기

파이썬 파일 읽고 쓰기

정리합니다 2020. 11. 29. 15:50
반응형

파이썬 파일 읽고 쓰기

 

우리는 이 책에서 이제까지 값을 '입력' 받을 때는 사용자가 직접 입력하는 방식을 사용했고 '출력' 할 때는 모니터 화면에 결과값을 출력하는 방식으로 프로그래밍해 왔다. 하지만 입출력 방법이 꼭 이것만 있는 것은 아니다. 이번에는 파일을 통한 입출력 방법에 대해 알아보자. 여기에서는 파일을 새로 만든 다음 프로그램이 만든 결과값을 새 파일에 적어 볼 것이다. 또 파일에 적은 내용을 읽고, 새로운 내용을 추가하는 방법도 알아 볼 것이다.

 

 

 

파일 생성하기

다음 소스 코드를 에디터로 작성해서 저장한 후 실행해 보자. 프로그램을 실행한 디렉터리에 새로운 파일이 하나 생성된 것을 확인할 수 있을 것이다.

 
f = open("새파일.txt", 'w')
f.close()
 

 

파일을 생성하기 위해 우리는 파이썬 내장 함수 open을 사용했다. open함수는 다음과 같이 '파일 이름'과 '파일 열기 모드'를 입력값으로 받고 결과값으로 파일 객체를 돌려준다.

파일 객체 = open(파일이름, 파일 열기 모드)

 

파일 열기 모드에는 다음과 같은 것이 있다.

파일 열기 모드 설명
r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드 - 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성된다. 위 예에서는 디렉터리 파일이 없는 상태에서 새파일.txt를 쓰기 모드인 'w'로 열었기 때문에 새파일.txt라는 이름의 새로운 파일이 현대 디렉터리에 생성되는 것이다.

 

만약 새파일.txt 파일을 C:/doit 디렉터리에 생성되고 싶다면 다음과 같이 작성해야 한다.

 
f = open("C:/doit/새파일.txt", 'w')
f.close()
 

 

위 예에서 f.close( )는 열러 있는 파일 객체를 닫아 주는 역할을 한다. 사실 이 문장은 생략해도 된다. 프로그램을 종료할 때 파이썬 프로그램이 열려 있는 파일의 객체를 자동으로 닫아주기 때문이다. 하지만 close( )를 사용해서 열려 있는 파일을 직접 닫아주는 것이 좋다. 쓰기 모드로 열었던 파일을 닫지 않고 다시 사용하려고 하면 오류가 발생하기 때문이다.

 

 

 

숙제>

복습.txt 파일을 C:/doit 디렉터리에 만들어 보자.

 

 

 

 

파일을 쓰기 모드로 열어 출력값 적기

위 예에서는 파일을 쓰기 모드로 열기만 했지 정작 아무것도 쓰지는 않았다. 이번에는 에디터를 열고 프로그램의 출력값을 파일에 직접 써 보자.

 
f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
       data = "%d번째 줄입니다.\n" %i
       f.write(data)
f.close()
 

위 프로그램을 다음 프로그램과 비교해 보자.

 
for i in range(1, 11):
       data = "%d번째 줄입니다.\n" %i
       print(data)
 

두 프로그램의 다른 점은 data를 출력하는 방법이다. 두 번째 방법은 우리가 계속 사용해 왔던 모니터 화면에 출력하는 방법이고, 첫 번째 방법은 모니터 화면 대신 파일에 결과값을 적는 방법이다. 두 방법의 차이점은 print 대신 파일 객체 f의 write 함수를 사용한 것 말고는 없으니 바로 눈에 들어올 것이다.

이제 명령 프롬프트 창에서 첫 번째 예제를 실행해 보자.

C:\Users>cd C:\doit

C:\doit>python writedata.py

C:\doit

이 프로그램을 실행한 C:/doit 디렉터리를 살펴보면 새파일 .txt 파일이 생성되었음을 확인할 수 있다. 새파일.txt 파일에는 어떤 내용이 담겨 있는지 확인 해 보자.

1번째 줄입니다.
2번째 줄입니다.
3번째 줄입니다.
4번째 줄입니다.
5번째 줄입니다.
6번째 줄입니다.
7번째 줄입니다.
8번째 줄입니다.
9번째 줄입니다.
10번째 줄입니다.

모니터 화면에 출력될 내용이 고스란히 파일에 들어 있는 것을 볼 수 있다.

 

 

 

 

 

# 프로그램의 외부에 저장된 파일을 읽는 여러가지 방법

파이썬에는 외부 파일을 읽어 들여 프로그램에서 사용할 수 있는 여러가지 방법이 있다. 이번에는 그 방법을 자세히 알아보자.

 

readline 함수 사용하기

첫 번째 방법은 readline 함수를 사용하는 방법이다. 다음 예를 보자.

 
f = open("C:/doit/새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
 

위 예는 

반응형
Comments