티스토리 뷰
#17 파이썬 chapter 17. 파일 읽고 쓰기
이제까지 우리는 값을 입력받을 때는 사용자가 직접 입력하는 방식을 사용했고 출력할 때는 모니터 화면에 결괏값을 출력하는 방식으로 프로그래밍 해왔다. 이번에는 파일을 통한 입출력 방법에 대해 알아보자.
1. 파일 생성하기
f = open("새파일.txt", 'w')
f.close()
파일을 생성하기 위해 우리는 파이썬 내장 함수 open을 사용했다. open 함수는 다음과 같이 '파일이름'과 '파일 열기 모드'를 입력값으로 받고 결괏값으로 파일 객체를 돌려준다.
파일 객체 = open(파일이름, 파일 열기 모드)
r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드 - 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용
파일 열기모드에는 위와 같은 것들이 있다.
파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성된다. 만양 새파일.txt 파일을 C:/doit 디렉터리에 생성하고 싶다면 다음과 같이 작성해야 한다.
f = open("C:/doit/새파일.txt", 'w')
f.close()
위 예에서 f.close() 는 열려 있는 파일 객체를 닫아 주는 역할을 한다.
2. 파일을 쓰기 모드로 열어 출력값 적기
에디터를 열고 프로그램의 출력값을 파일에 직접 써보자.
# writedata.py
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번째 줄입니다." % i
print(data)
두 프로그램의 다름 점은 data를 출력하는 방법이다. 두 번째는 우리가 계속 사용해 왔던 모니터 화면에 출력하는 방법이고, 첫 번째 방법은 모니터 화면 대신 파일에 결괏값을 적는 방법이다.
2. 프로그램의 외부에 저장된 파일을 읽는 여러가지 방법
1) readline 함수 사용하기
첫 번째 방법은 readline 함수를 사용하는 방법이다.
# readline.py
f = open("C:/doit/새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
위 예는 파일을 읽기모드로 연 후 readline()을 사용해서 파일의 첫 번째 줄을 읽어 출력하는 경우이다.
만약 모든 줄을 읽어서 출력하고 싶다면 다음과 같이 작성하면 된다.
# readline.py
f = open("C:/doit/새파일.txt", 'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
2) readlines 함수 사용하기
두번째 방법은 readlines 함수를 사용하는 방법이다.
f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close
readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.
3) read 함수 사용하기
세 번째 방법은 read 함수를 사용하는 방법이다.
f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close()
3. 파일에 새로운 내용 추가하기
쓰기모드로 파일을 열 때 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라지게 된다. 하지만 원래 있던 값을 유지하면서 새로운 값을 추가해야 할 경우도 있다. 이런 경우 파일을 추가모드로 열면 된다.
# adddata.py
f = open("C:/doit/새파일.txt", 'a')
for i in range(11, 20):
data = "%d번째 줄입니다.|n" %i
f.write(data)
f.close
위 예는 새파일을 추가모드로 열고 write를 사용해서 결괏값을 기존 파일에 추가해 적는 예이다. 여기에서 추가모드로 파일을 열었기 때문에 새파일이 원래 가지고 있던 내용 바로 다음부터 결괏값을 적기 시작한다.
4. with 문과 함께 사용하기
지금까지 살펴본 예제는 항상 다음과 같은 방식으로 파일을 열고 닫아왔다.
f = open("foo,txt", 'w')
f.write("Life is too short, you need python")
f.close
파일을 열면 위와 같이 항상 close 해주는 것이 좋다. 하지만 자동으로 파일을 열고 닫는것이 더 편리하지 않을까?
다음 예제를 보자.
with open("foo,txt", 'w') as f:
f.write("Life is too short, you need python")
위와 같이 with문을 사용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close 된다.
출처 : 점프 투 파이썬
'파이썬의 기초' 카테고리의 다른 글
파이썬의 입력과 출력(사용자 입력과 출력) (0) | 2021.03.13 |
---|---|
파이썬의 입력과 출력 (함수) (0) | 2021.03.13 |
파이썬의 제어문 ( for 문) (0) | 2021.03.13 |
파이썬의 제어문 (while문) (0) | 2021.03.13 |
파이썬의 제어문 (if문) (0) | 2021.03.11 |