# readline_all.py
f = open("C:/doit/새파일.txt",'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
# readline_all.py
f = open("C:/doit/새파일.txt",'r')
while True
line = f.readline()
if not line: break
print(line)
f.close()
우리는 이제까지 값을 '입력' 받을 때는 사용자가 직접 입력하는 방식을 사용했고 '출력'할 때는 모니터 화면에 결괏값을 출력하는 방식으로 프로그래밍해 왔다. 하지만 입출력 방법이 꼭 이것만 있는 것은 아니다.
이번에는 파일을 통한 입출력 방법에 대해 알아보자.
여기에서는 파일을 새로 만든 다음 프로그램이 만든 결괏값을 새 파일에 적어볼 것이다. 또 파일에 적은 내용을 읽고, 새로운 내용을 추가하는 방법도 알아볼 것이다.
- 파일 생성하기
f = open("새파일.txt",'w')
f.close()
파일객체 = open(파일이름, 파일 열기 모드)
*파일 열기모드 종류
r : 읽기모드
w : 쓰기모드
a : 추가모드
만약 새파일.txt파일을 C:/doit 디렉터리에 생성하고 싶다면 다음과 같이 작성해야 한다.
C:/doit/새파일.txt",'w')
f.close()
- 파일을 쓰기 모드로 열어 출력값 적기
ex)
# 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번째 줄입니다.|n" %i
print(data)
두 프로그램의 다른 점은 data를 출력하는 방법이다.
아래방법: 우리가 계속 사용해 왔던 모니터 화면에 출력하는 방법
위쪽방법: 모니터 화면 대신 파일에 결괏값을 적는 방법
- 프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법
- readline 함수 사용하기
# readline.py
f = open("C:/doit/새파일.txt",'r')
line = f.readline()
print(line)
f.close()
위 예는 f.open로 파일을 읽기 모드로 연 후 readline()을 사용해서 파일의 첫 벗째 줄을 읽어 출력하는 경우이다.
앞에서 만든 새파일.txt를 수정하거나 지우지 않았다면 위 프로그램을 실행했을 때 새파일.txt의 가장 첫 번째 줄이 화면에 출력될 것이다.
1번째 줄입니다.
만약 모든 줄을 읽어서 화면에 출력하고 싶다면?
# readline_all.py
f = open("C:/doit/새파일.txt",'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
즉 while True: 무한 루프 안에서 f.readline()을 사용해 파일을 계속해서 한 줄씩 읽어 들인다. 만약 더 이상 읽을 줄이 없으면 break를 수행한다.
while 1:
data = input()
if not data: break
print(data)
위 예는 사용자의 입력을 받아서 그 내용을 출력하는 경우이다.
- readlines 함수 사용하기
f = open("C:/doit/새파일.txt",'r')
lines = f.readlines()
for line in lines:
print(line)
f.close()
- read 함수 사용하기
f = open("C:/doit/새파일.txt",'r')
data = f.read()
print(data)
f.close()
f.read()는 파일의 내용 전체를 문자열로 돌려준다.
- 파일에 새로운 내용 추가하기
# adddata.py
f = opne("C:/doit/새파일.txt",'a')
for i in range(11,20)
data = "%d 번째 줄입니다.|n" %i
f.write(data)
f.close()
- 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되어 편리하다.
출처: " 점프 투 파이썬"
'파이썬 기초' 카테고리의 다른 글
04-2 사용자 입력과 출력 (0) | 2021.03.16 |
---|---|
04-1 함수 (프로그램의 입력과 출력은 어떻게 해야 할까?) (0) | 2021.03.16 |
03-3 for문 (0) | 2021.03.14 |
03-2 while문 (0) | 2021.03.14 |
03 -1 if문 (0) | 2021.03.14 |