본문 바로가기

텍스트 파일 다루기 본문

파이썬/파이썬 기본

텍스트 파일 다루기

jaegomhoji 2022. 2. 3. 16:38

** 텍스트 파일 -> open(열기) -> read(읽기) / write(쓰기) -> close(닫기) 

** 텍스트 파일 쓰기 : 텍스트 파일은 외부자원이기에, 오픈할 경로를 명시해야 한다 , 기본경로 + 파일명.포맷 식으로 지정해놓으면 편하다 

** encoding 오류 시, open("path", read type, encoding="encoder -> txt file 에 맞는 포맷") 

 

'r' : read mode, 읽기 전용

'w' : write mode, 해당 파일이 없으면 텍스트 파일을 생성 , 새로 쓸때 이어쓰기를 설정하지 않으면 매번 새로 쓰게 된다 

 

file.write()

file.close() <- 반드시 종료해준다!

 

기존 Hello W말고 새롭게 쓰여진 모습 

 

** 텍스트 파일 읽기

 

** 텍스트 파일 열기

파일 모드는 파일을 어떤 목적으로 open할지 정한다.

'w' : write 쓰기전용 ( 파일이 있으면 덮어씌움 ) 

'a' : append 쓰기전용 ( 파일이 있으면 덧붙임 )

'x' : 쓰기 전용 ( 파일이 있으면 에러 발생 ) 

'r' : read 읽기 전용 ( 파일이 없으면 에러 발생 ) 

 

** with ~ as문을 이용하면 파일 닫기(close)를 생략할 수 있다.

 

** with ~ as 실습

** enumerate 함수로 index나 value를 반환할 수 있음 

* random.sample(range(start_num,end_num+1),how many pick) 을 통해서 로또번호 1~45까지 보너스 공을 포함해 7개 추출 

* 추출한 난수들을 index로 지정하여 가져올때 뒤에서 두번째까지는 ,로 구분. 개행 후 마지막 인덱스에서 보너스를 붙여준다 

* 다중 조건문 if ~ elif ~ elif를 사용하고 append를 with open("path",'a') as f: 로 받아 한 줄로 처리한 모습 

* 마지막에도 with open('path','r') as f: , print(f.read())로 빠르게 읽어주었다 

 

**writelines() : writelines()는 리스트 또는 튜플 데이터를 파일에 쓸 수 있는 함수 

for 문을 사용하면 따옴표 안의 텍스트만 그대로 들어간다. 반면, 

writelines()를 사용하면 Txt file 내부에서도 list형태의 조건을 갖추고 들어가 있는 것을 볼 수 있다. ['a', 'b', 'c' .... ] 

 

** readlines(), readline() 

readline() : 파일의 한 행의 데이터를 읽고 문자열로 변환한다. 변수 호출 시 한줄만 변환한다. 조건문의 형태로 각각 줄을 가져올 수 있다. 

readlines() : 파일의 모든 데이터를 읽어서 리스트 형태로 변환한다. 한 행씩 "구분하여" 읽으며, 개행문자도 읽어온다. 

* while문의 형태로 읽어온 줄이 공백이 아닐경우 다시 다음 줄을 읽어

* 각 줄을 차례대로 읽어온 모습 (end=""지정해서 저렇게 개행됨)

* 반면 readlines의 경우 리스트 안에 각 줄의 자료들이 콤마로 구분되어 모두 들어가 있다.  

* 따라서 type(readlines(something)) 하면 <class list >가 출력된다.

 

** split과 strip을 적절히 이용하여 원하는 값으로 ex) ( key , value ) index[0] = index[1] 변환할 수 있다 

Comments