[Python]파일 읽고 쓰기
f = open('a.txt', 'a')
for i in range(11, 20):
data = "%d번째 줄이다. \n" %i
f.write(data)
f.close()
1. 파일생성('w')
파일객체 = open(파일명, 파일 열기 모드) |
※ 파일 열기 모드
: r (읽기) - 파일생성시 해당파일이 존재하면 기존 내용이 모두 사라지고(덮어쓰기), 존재하지 않으면 새 파일 생성
w (쓰기)
a (추가모드)
f = open("새파일.txt",'w')
f.close()
- write함수 (파일에 결과값 적기)
f = open('a.txt', 'w') # write(파일생성) a.txt 파일 객체를 연다
for i in range(1, 11):
data = "%d번째 줄이다. \n" %i #a.txt에 내용을 기재해준다.
f.write(data)
f.close()
print()대신 write를 사용한 것을 볼 수 있다.
write함수는 모니터 화면 대신 파일에 결과값을 적는 방법이다.
프로그램 외부에 저장된 파일 읽기 ('r')
① readline함수 사용
: 파일의 내용을 한줄씩 읽어온다. while문 안에 사용하는 경우 더이상 읽을 줄이 없으면 None을 출력한다.
f = open('a.txt', 'r') #읽는다.
while True:
li = f.readline()
if not li: # line이 없으면 반복문 탈출
break
print(li)
f.close()
② readlines함수 사용
: 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.
f = open('a.txt', 'r')
li = f.readlines() #파일의 모든 줄을 읽어서 반환값 형태가 리스트 형태이다.
print(li)
for i in li:
print(i)
f.close()
li는 리스트 ['1번째 줄이다. ', '2번째 줄이다. ', ..., '10번째 줄이다. ']가 된다.
③ read함수 사용
: 파일 내용의 전체를 문자열로 돌려준다.
f = open('a.txt', 'r')
li = f.read() #파일 내용 전체를 문자열로 돌려줌
print(li)
f.close()
파일에 새로운 내용 추가('a')
: 'w'로 파일을 열 때 이미 존재하는 파일을 열면 해당 파일의 내용이 모두 사라지게 된다.
'a'는 원래 값을 유지하면서 새로운 값을 주가하는 경우에 사용한다.
f = open('a.txt', 'a')
for i in range(11, 20):
data = "%d번째 줄이다. \n" %i
f.write(data)
f.close()
파일의 기존 내용인 "1번째 줄이다. ~ 10번째 줄이다." 뒤에 "11번째 줄이다. ~ 19번째 줄이다." 가 추가된다.
- f.close()
: 열려있는 파일 객체를 닫아주는 역할을 한다.
쓰기모드로 열었던 파일을 닫지않고 다시 사용하려고 하면 오류가 발생하기 때문에
파이썬 프로그램이 열려있는 파일의 객체를 자동으로 닫아주지만 직접 닫아주는게 좋다.
- with ~ as
: 파일 사용 후 자동으로 파일 객체를 닫아준다
with open("new.txt", 'w') as f:
f.write("Life is too short, you need python")