Python 파이썬에서 파일 다루기(읽기, 쓰기)
1. 파일 객체 생성하기 (open())
1-1. open() 내장 함수만 이용하기
사용법
1 2 3
f = open("파일명.txt","w") f.read() f.close()
파일 객체 = open(파일이름, 파일 열기 모드)
파일 열기 모드의 종류
모드 설명 비고 t 텍스트 모드 r 읽기모드 파일이 없으면 에러 발생 w 쓰기 모드 파일이 없으면 생성 a 추가 모드 파일의 마지막에 내용 추가, 없으면 생성 + 읽기, 쓰기 모드 덮어쓰기 쓰기 모드는 해당 파일이 이미 존재할 경우 원래 있던 내용을 삭제한다.
주의사항
f.close()는 열려 있는 파일 객체를 닫아 주는 역할을 한다.프로그램이 종료될 때 알아서 닫아주어서 생략해도 되지만, 쓰기모드로 열려 있는 객체를 닫지 않고 다시 사용하려고 하면 오류가 발생하므로 닫아주는게 좋다.
1-2. with문과 함께 이용하기
사용법
1 2 3 4
with open("파일명.txt","w") as f : f.read() # f.close() 하지 않아도 됨
with open(파일이름, 파일 열기 모드) as 파일 객체 :
사용하는 이유
open()으로만 파일을 열면 항상close()해주는 것이 좋다. 그러나with문과 함께 사용한다면with블록을 벗어나는 순간 열린 파일 객체가 자동으로close()되기 때문에 따로 신경쓸 필요가 없다.
2. 파일의 내용 읽기 (r)
2-1. read() 함수 이용하기
사용법
1 2 3 4
with open("파일명.txt","r") as f : read = f.read() print(read)
파일객체.read(글자수)
인수를 지정해주면 지정한 글자수만큼만 읽고, 인수를 지정해주지 않으면 파일 전체를 읽는다.
주의사항
- 읽기 모드(rt)에서 사용 가능하다.
- 파일이 존재하지 않는다면 에러가 발생한다.
- 파일을 다 읽고나면 빈 문자를 리턴한다.
2-2. readline() 함수 이용하기
사용법
- 한 라인만 읽어서 출력하기
1 2 3 4
with open("파일명.txt","r") as f : read= f.readline() print(read)
- 파일을 한 라인씩 읽어서 전부 출력하기
1 2 3 4 5 6
with open("파일명.txt","r") as f : while True : read= f.readline() if not read : break print(read)
파일객체.readline(글자수)
인수를 지정해주면 해당 라인에서 지정한 글자수만큼만 읽고, 인수를 지정해주지 않으면 라인 전체를 읽는다.
주의사항
read()와 동일한 주의사항
2-3. readlines() 함수 이용하기
사용법
1 2 3 4 5
with open("파일명.txt","r") as f : read= f.readlines() for line in read : print(line)
파일객체.readlines()
파일의 모든 줄을 읽어서 각각의 줄을 리스트의 형태로 리턴한다.
3. 파일에 내용 쓰기 write()
3.1. w 모드로 쓰기
- 사용법
1 2
with open("파일명.txt","w") as f : f.write("text")
파일객체.write(문자열)
주의사항
w모드이기 때문에 기존 파일이 존재한다면 내용을 전부 지우고 새로 쓴다.- 파일을 닫아주지 않으면 저장되지 않는다.(
close())
3.2. a 모드로 추가하기
사용법
1 2
with open("파일명.txt","a") as f : f.write("text")
파일객체.write(문자열)
주의사항
- 파일이 원래 가지고 있던 내용 바로 다음부터 문자열을 적어나간다.
- 파일을 닫아주지 않으면 저장되지 않는다.(
close())