1. 텍스트 파일 입출력
메모리에 전적으로 데이터를 저장하면 안되는 이유
1) 저장 용량이 적다.
2) 휘발성: 전원이 꺼지면 데이터 날아간다.
→ 보조기억장치로 하드 디스크에 데이터를 저장한다.
하드 디스크 ←→ 메모리 데이터 주고 받는 방식
경로를 설정한다.
EOF(end-of-file): 마커의 위치
위치 표시자(position indicator): 입출력하는 위치
텍스트 파일: '\n'(공백 문자)으로 끝지점을 인식한다, 텍스트 데이터로 되어 있는 파일만 가져올 수 있다.
프로그래밍은 메모리 기준으로 봐야한다.
파일에 데이터 저장: 메모리 기준으로 데이터 출력(메모리에 들어옴)
파일 데이터 읽어옴: 메모리 기준으로 데이터 입력(메모리에서 나감)
컴퓨터는 텍스트를 ASCLL 또는 유닛커드로 바꿔서 읽는다.
숙제 전달된 코드에 주석 달기 |
교재 p535
코랩
드라이브에 할당
content > drive > mydrive ...
파일 자체를 메모리 공간에 가지고 오는 것이 아니라
내가 메모리에서 해당 파일에 접근할 수 있는 경로를 만든다.
파일 모드 | 모드 이름 | 설명 |
"r" | 읽기 모드 | 파일의 맨 처음부터 읽는다. |
"w" | 쓰기 모드 | 파일의 처음부터 쓴다. 파일이 없으면 새로 생성한다. |
"a" | 추가 모드 | 파일의 끝에 쓴다. 파일이 없으면 새로 생성한다. |
"r+" | 읽기와 쓰기 모드 | 파일에 읽고 쓸 수 있으며 모드를 변경하려면 seek()가 호출되어야 한다. |
read()
readline()
rstrip() : 공백 제거해준다.
2. 객체 입출력
* 이진 파일 입출력
주로 잘 쓰지 않는다.
셋팅 해야할 작업이 복잡하고 많다. 메소드가 따로 있다.
끝을 알려주는 표기가 없다.
직렬화
객체는 덩어리의 시작에서부터 끝까지 binary로 한 줄짜리 데이터를 만든다.
이것을 이진 파일로 입출력한다.
역진렬화
역순으로 다시 모은다.
객체를 쓰고 읽는 방법
pickle 모듈의 dump()와 load() 메소드를 사용
'Programming Language > Python' 카테고리의 다른 글
[파이썬] DAY8 파일 입출력 & 예외 처리 복습 (0) | 2022.01.25 |
---|---|
[파이썬] DAY7 예외처리 (0) | 2022.01.24 |
[파이썬] DAY7 입학 시험 마지막 문제 클래스로 풀어보기 (0) | 2022.01.24 |
[파이썬] DAY6 다형성 (0) | 2022.01.21 |
[파이썬 ] DAY6 상속 (0) | 2022.01.21 |