파이썬기초-14 파일 입출력
파일 입력
- 파이썬에서 파일을 읽고 쓸 수 있음
- 모드가 존재
- 존재하는 파일에서 쓰기 모드로 할 경우 내용이 초기화됨
- 파일을 열었으면
close()
로 반드시 닫아줘야함
모드 | 설명 |
---|---|
w |
쓰기 모드(파일이 없을 경우 생성) |
wb |
이진 쓰기모드 |
r |
읽기 모드 |
rb |
이진읽기 모드 |
a |
수정 모드 |
x |
파일생성 모드(파일이 존재하면 오류) |
test_file = open("test_file.txt", "w", encoding="utf8") # 쓰기 모드로 파일 생성
print("ABC", file=test_file) # 파일에 ABC 쓰기
print("DEF", file=test_file) # 파일에 DEF 쓰기
test_file.close()
test_file = open("test_file.txt", "a", encoding="utf8") # 수정 모드로 파일 불러오기
print("GHI", file=test_file)
test_file.close()
with문
- 파일을 읽고 쓸때
with
를 사용하여 자동으로 열고 닫음 as
예약어는 파일에 접근 할 때 사용할 변수를 입력close()
가 필요없음
with open("test_file.txt", "a", encoding="utf8") as file:
file.write("JKL\n")
file.write("MNO")
파일 출력
메서드 | 설명 |
read() |
파일 내용 전체 읽기 |
readline() |
한줄씩 읽고 커서를 다음으로 옮김(다음내용 출력) |
test_file = open("test_file.txt", "r", encoding="utf8") # 읽기 모드
print(test_file.read())
test_file = open("test_file.txt", "r", encoding="utf8")
print(test_file.readline())
print(test_file.readline())
print(test_file.readline())
print(test_file.readline())
ABC
DEF
GHI
JKL
MNO
ABC
DEF
GHI
JKL
반복문을 이용한 출력
test_file = open("test_file.txt", "r", encoding="utf8")
while True:
line = test_file.readline()
if not line: # 더이상 출력할 줄이 없을때
break
print(line)
test_file.close()
ABC
DEF
GHI
JKL
MNO
test_file = open("test_file.txt", "r", encoding="utf8")
lines = test_file.read()
for line in lines:
print(line, end="")
test_file.close()
ABC
DEF
GHI
JKL
MNO
pickle
- 프로그램 상에서 사용하고 있는 데이터를 파일 형태로 저장해 주는 것
- 바이너리 모드로 저장됨
dump()
를 이용하여 데이터를 저장하고load()
를 사용하여 불러옴
import pickle
profile_file = open("profile.pickle", "wb") # 이진쓰기모드
profile = {"이름": "김씨", "나이": 30, "취미": ["축구", "골프", "배구"]}
pickle.dump(profile, profile_file)
# profile에 있는 정보를 profile_file에 저장
profile_file.close()
profile_file = open("profile.pickle", "rb") # 이진읽기모드
profile = pickle.load(profile_file)
# profile_file파일에 있는 정보를 profile에 불러오기
print(profile)
print(type(profile))
profile_file.close()
{'이름': '김씨', '나이': 30, '취미': ['축구', '골프', '배구']}
<class 'dict'>
댓글남기기