리스트나 클래스같은 텍스트가 아닌 자료형은 일반적인 파일 입출력 방법으로는 데이터를 저장하거나
불러올 수 없고, 대신에 pickle이라는 모듈을 사용
cf. 일반적인 파일은 파일 입출력을 이용한다
pickle로 데이터를 저장하거나 불러올때는 파일을 바이트형식으로 읽거나 써야한다. (wb, rb)
입력, pickle.dump(data, file)
읽기, pickle.load(file)
# 파일에 텍스트 입력하기-1
text = "hello world"
with open("C:\\Users\\yunaj\\ex.txt", "w",encoding='utf-8') as f:
f.write(text)
# 파일에 텍스트 입력하기-2
text = "hello world"
with open("C:\\Users\\ex2.txt", "w",encoding='utf-8') as f:
f.write(text)
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\ex2.txt'
- 경로 주의
- C:\와 같이 관리자 권한이 필수 인 경우에는 config을 수정해줘야 한다.
- 아니면 C:\\:Users\\(사용자이름).. 과 같이 사용자 폴더 아래에 해주거나
# 파일에 리스트 입력하기 - 1
lis = ['a', 'b', 'c']
with open("C:\\Users\\yunaj\\ex2.txt", "w") as f:
f.write(lis)
TypeError: write() argument must be str, not list
- 일반적인 파일처럼 다루면은 오류가 난다
# 파일에 리스트 입력하기 - 2
import pickle
lis = ['a', 'b', 'c']
with open("C:\\Users\\yunaj\\ex2.txt", "wb") as f:
pickle.dump(lis, f)
# 리스트 파일 읽기
with open("C:\\Users\\yunaj\\ex2.txt", "rb") as f:
data = pickle.load(f)
data