본문 바로가기
Programming Language/Python

[파이썬] DAY7 파일 & 객체 입출력

by 9루트 2022. 1. 24.

1. 텍스트 파일 입출력

 

메모리에 전적으로 데이터를 저장하면 안되는 이유

1) 저장 용량이 적다.

2) 휘발성: 전원이 꺼지면 데이터 날아간다.

→ 보조기억장치로 하드 디스크에 데이터를 저장한다.

 

하드 디스크 ←→ 메모리 데이터 주고 받는 방식

경로를 설정한다.

 

 

EOF(end-of-file): 마커의 위치

위치 표시자(position indicator): 입출력하는 위치

 

텍스트 파일:  '\n'(공백 문자)으로 끝지점을 인식한다, 텍스트 데이터로 되어 있는 파일만 가져올 수 있다.

프로그래밍은 메모리 기준으로 봐야한다.

파일에 데이터 저장: 메모리 기준으로 데이터 출력(메모리에 들어옴)

파일 데이터 읽어옴: 메모리 기준으로 데이터 입력(메모리에서 나감)

 

컴퓨터는 텍스트를 ASCLL 또는 유닛커드로 바꿔서 읽는다.

 

 

숙제
전달된 코드에 주석 달기

 

교재 p535

 

코랩

드라이브에 할당

content > drive > mydrive ...

 

 

파일 자체를 메모리 공간에 가지고 오는 것이 아니라 

내가 메모리에서 해당 파일에 접근할 수 있는 경로를 만든다.

 

파일 모드 모드 이름 설명
"r" 읽기 모드 파일의 맨 처음부터 읽는다.
"w" 쓰기 모드 파일의 처음부터 쓴다. 파일이 없으면 새로 생성한다.
"a" 추가 모드 파일의 끝에 쓴다. 파일이 없으면 새로 생성한다.
"r+" 읽기와 쓰기 모드 파일에 읽고 쓸 수 있으며 모드를 변경하려면 seek()가 호출되어야 한다.

 

 

 

 

read()

data1"\n"data2... 여기에서 개행문자를 포함하여 읽는다.

 

readline()

개행문자까지 가지고 온다.

 

 

모두 개행문자를 가지고 있다.

 

 

rstrip() : 공백 제거해준다.

공백(개행문자)가 제거가 되지 않는다.
개행문자를 없애준다.
스페이스 바를 없애준다.

 

이 세 줄은 꼭 기억하자!
꼭 반드시 string 데이터로 넣어야 텍스트 파일에 입력된다.

 

 


2. 객체 입출력

* 이진 파일 입출력 

주로 잘 쓰지 않는다.

셋팅 해야할 작업이 복잡하고 많다. 메소드가 따로 있다.

끝을 알려주는 표기가 없다. 

 

 

 

직렬화

객체는 덩어리의 시작에서부터 끝까지 binary로 한 줄짜리 데이터를 만든다.

이것을 이진 파일로 입출력한다.

 

역진렬화

역순으로 다시 모은다.

 

 

객체를 쓰고 읽는 방법

pickle 모듈의 dump()와 load() 메소드를 사용

딕셔너리라는 객체를 myMovie가 주소를 저장하여 입출력한다.