파이썬 - 파일 입출력
파일로 데이터를 읽을 때 read(), readline(), readlines() 함수 사용.
파일에 데이터를 쓸 때 write(), writelines() 함수 사용
파일열기
상자를 열 듯 파일을 연다. open()함수 사용
첫 번째 전달인자는 오픈할 파일명을 입혁
두 번째 전달인자는 파일 열기 모드를 입력
파일 열기 모드 설명
r : 파일을 읽기만 할 때 사용합니다.
w: 파일에 내용을 쓸 때 사용합니다. 기존에 파일이 있르면 덮어 씁니다.
a : 파일에 내용을 쓸 때 사용합니다. 기존에 파일이 있르면 이어서 씁니다.
b : 바이너리(이진) 파일을 처리합니다.
t : 텍스트 파일을 처리합니다.
파일에 읽고 쓰기
읽은 문자열 = 파일객체.read()
파일객체.write(저장할 문자열)
파일객체.close()
텍스트파일읽기
텍스트 파일 한줄씩 끝까지 읽기
텍스트 파일에서 통째로 읽기
리스트 형태로 출력이 된다.
분석하기에는 좋은 형태로 출력이 되었다. (보기에는 좋지 않다)
사용자로부터 파일명을 입력받아 파일을 출력하는 방법과 에러메시지 출력
지금까지 읽기였다면 이제는 써보도록하자.
텍스트 파일에 데이터 쓰기
메모장 파일인 file.txt에 코드를 사용하여 데이터를 쓰도록한다.
파일객체.write(입력문자열)
파일객체.write(리스트 문자열)
file.txt에 데이터를 입력해 wq를 입력하면 종료되게 하고
file2.txt라는 파일에 복사하는 코드
바이너리파일 입출력
이미지도 마찬가지지만 이미지는 br : byte read bw : byte write 를 써준다.
바이너리 파일에서 데이터 얻어오기
MP3파일을 열어서 데이터를 얻어오는 코드를 작성해보자.
MP3파일은 128바이트에 곡의 제목, 가수이름, 음반 출시 년도와 같은 데이터를 담고 있다.
파일에 담고있는 데이터를 메타데이터라고 한다.
ID3v1포멧을 살펴본다.
바이너리 파일에서 데이터 얻어오기
파일의 원하는 바이트 위치로 이동하는 함수 seek()
seek()함수에 전달인자n만 사용되면 파일의 n번째 바이트로 이동
전달인자가 1인 경우 현재 위치에서 n바이트만큼 이동
전달인자가 2인 경우 맨 마지막 위치에서 n바이트만큼 이동
read()함수에 전달인자가 없는 경우에 전체 파일을 읽어 들이게 된다.
파일객체.read(size)
read() 함수에 전달인자로 읽기 원하는 바이트 수를 입력하면 파일에서 지정한 바이트 수만큼만 데이터를 읽어온다.
바이트 데이터를 그대로 출력하면 16진수 데이터가 나타난다.
바이트 데이터를 문자열 데이터로 변환해주는 과정을 디코딩(decoding)
문자열 데이터를 바이트 데이터로 변환해주는 과정을 인코딩(encoding)
mp3 파일을 핸들링 해보자.
mp3 파일을 최초로 만든 나라가 우리나라라는 사실을 오늘 처음 알게되었다.
자랑스럽다.
mp3의 파일정보 데이터는 맨 끝에 있으므로
전달인자를 2를 주면된다.
mp3 파일에 대한 데이터 분석이 가능하다!