파일 입력

  • 파이썬에서 파일을 읽고 쓸 수 있음
  • 모드가 존재
  • 존재하는 파일에서 쓰기 모드로 할 경우 내용이 초기화됨
  • 파일을 열었으면 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'>

카테고리:

업데이트:

댓글남기기