파일을 생성하거나 열 때 모드를 정해줄 수 있습니다. 파일에 들어갈 데이터가 텍스트면 텍스트모드, 그림이면 바이너리 모드로 설정할 수 있습니다.
모드 | 설명 |
t | 텍스트 |
b | 바이너리 |
r | 읽기 |
w | 쓰기 |
a | 이어쓰기 |
+ | 읽기,쓰기 |
파일 열기/쓰기/닫기
파일을 열 때는 open(), 닫을 때는 close() 함수를 사용합니다. 파일을 쓸 때는 write() 함수를 사용합니다.
file = open("file_create.txt","w") #파일 열기
file.write("Hello world!!") #파일에 텍스트 작성
file.close() #파일 닫기
위의 코드를 실행하면 아래 그림과 같이 폴더 안에 "file_create.txt"파일이 생기고, 내용도 작성되어 있는 것을 확인할 수 있습니다.
file_create.txt 파일에 새로운 내용을 추가하기 위해 이어쓰기(a)모드를 사용하여 아래와 같이 작성할 수 있습니다.
file2 = open("file_create.txt","a") #파일 열기
file2.write("Python Python Python\n오후 10시 36분") #파일에 텍스트 작성
file2.close() #파일 닫기
파일 읽기
텍스트 파일을 읽어올 때는 read() 함수를 사용합니다.
file_read = open("read_cartoon.txt","r", encoding='utf-8') #파일 열기
content = file_read.read() #파일 읽기
file_read.close() #파일 닫기
print(content)
#출력값
'''
짱구는 못말려
도라에몽
안녕 자두야
뽀로로
톰과 제리
'''
참고로 encoding='utf-8'을 넣지 않을 경우 UnicodeDecodeError가 발생할 수도 있습니다.
파일을 읽어오는 함수는 read() 외에도 readline()과 readlines()가 있습니다. read()는 파일을 통째로 읽어오고, readline()은 한 줄만 반환합니다., readlines()는 파일을 통째로 읽고, \n문자를 포함하여 리스트로 반환합니다.
file_read = open("read_cartoon.txt","r",encoding='utf-8')
content = file_read.readline()
file_read.close()
print(content)
#출력값
#짱구는 못말려
file_read2 = open("read_cartoon.txt","r",encoding='utf-8')
content2 = file_read2.readlines()
file_read2.close()
print(content2)
#출력값
#['짱구는 못말려\n', '도라에몽\n', '안녕 자두야\n', '뽀로로\n', '톰과 제리\n']
with 구문
프로그램을 하다보면 파일을 open()하고 close()하지 않는 실수를 할 수도 있습니다. with 구문을 사용하면 close()를 사용하지 않아도 됩니다.
with open("with.txt","w") as file: #파일 열기
file.write("with 구문을 사용하여 작성하는 텍스트파일입니다.") #파일쓰기