티스토리 뷰

python - 파일 읽고 쓰기




  파일 읽고 쓰기


   - 입력을 받는법이 사용자가 직접 입력하는 방식과 출력할 때에 모니터 화면에 결과값을 출력하는

     방식외에도 파일을 통한 입출력 방법이 있다.




  파일 생성하기



 ↑ 에디터를 통해 파이썬 파일을 만들고, 저장 후 실행해보면 저장되는 위치 디렉터리에 새로운 파일이 생성

    # open은 파이썬 내장 함수이다. open함수는 파일이름 모드를 입력값으로 받고 파일 객체를 돌려준다.

    # f.close()는 열려 있는 파일 객체를 닫아 주는 역활을 한다. 

        - 생략가능하지만, 열려 있는 파일을 직접 닫아 주는 것이 좋다.( 쓰기 모드로 열었던 파일을 닫지 않고 다시 사용시 오류 발생 )

    # f = open( "원하는위치/파일명" , ' w ' ) →원하는 위치에 파일을 저장할 수 있다.

       ex) f = open( "C:/python/test.txt", ' w ' )



<사용방법>

파일 객체 = open( 파일 이름, 파일 열기 모드 )

  


  모드

  설명 

  r 

 읽기모드 - 파일을 읽기만 할 떄 사용 ( 파일이 없으면 Error

  r+    읽기 또는 쓰기모드 - ( 파일이 없으면 Error )

  w 

 쓰기모드 - 파일에 내용을 쓸 때 사용 ( 파일이 없으면 새로 만든다.)

  w+     읽기 또는 쓰기 모드 -파일이 없으면 새로 만든다. 

  a  

 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬때 사용 

  a+        
 읽기 또는 파일 추가 모드 - 파일이 없으면 만든다. 
 
w+ 와 r+는 쓰기 모드 시에 조금 다른 작업을 한다. w+의 경우 기본파일에 있던 데이터를 완전 지워버리고 새로쓴다.
     r+의 경우 기존 파일내용은 그대로 두고 그 위에 덮어쓰기 위함이다.
   ex) 기존 파일 : Hello World!
     w + 모드로  aa를 입력하면 파일 내용 → aa
     r  + 모드로 aa를 입력하면 파일 내용 → aallo World!
     a + 모드로 aa를 입력하면 파일 내용 → Hello World!aa

 

↑ 파일을 쓰기 모드로 열게 되면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일 생성

    # 위 test.txt의 경우 디렉터리에 파일이 없는 상태에서 test.txt( 새 파일 )을  ' w '( 쓰기모드 )로 열었기 때문에

       test.txt라는 이름의 새로운 파일이 현재 디렉터리에 생성







  파일 쓰기 모드로 열어 출력값 적기



 ↑ ① 파일에 결과값을 적는 방법

    # f.write( data )를 통해 test.txt.파일에 내용을 추가해 주었다.

    # ' \n '문자를 라인의 끝에 붙여주기만 하면 된다.



 ↑저장된 디렉터리에 test.txt파일을 열어보면 입력한 내용을 볼 수 있다.

    # 모니터 화면에 출력될 내용이 파일에 담겨있다.



 ↑ ② 모니터 화면에 결과값을 출력했다.

   # 파일에 결과값을 적는방법과 차이를 알아 두어야 한다.



  파일 내용 읽기 - read()함수 이용



 ↑ read()함수는 위와 같이 통 문자열을 반환한다. 



 ↑ split()를 통해 문자열을 리스트로 받을 수 있다.



 ↑ 리스트로 받으면 단어의 갯수를 알 수 있다.




  파일 내용 읽기 - readline() 함수 이용하기



 ↑ f.open( " test.txt ", ' r ' )로 파일을 읽기 모드로 연 후 readline()을 이용해서 파일의 첫 번째 줄을 읽어 출력

   # test.txt를 수정하거나 지우지 않았다면 위 프로그램을 실행했을 때 test.txt의 가장 첫 번째 줄이 화면에 출력 



 ↑ while문을 이용해 무한 루프를 만들고 f.readline()을 이용해 파일을 계속해서 한줄 씩 읽어내고 있다.

    # 만약 더이상 읽어낼게 없다면 break를 수행해서 while문을 빠져나온다.





  파일 내용 읽기 - readlines() 함수 이용하기




 ↑ readlines() 함수는 파일의 모든 라인을 읽어서 각각의 줄을 요소로 갖는 리스트로 리턴한다.

    # lines는 [ '1번째 줄입니다. \n' , ...]라는 리스트가 된다.

    # readline()와 달리 readlines()에는 ' s ' 가 하나 더 붙어 있다.




  파일 새로운 내용 추가 하기


   - 쓰기모드( 'w' )로 파일을 열 때 이미 존재하는 파일을 열 경우 그 파일의 내용이 모두 사라지게 된다.

   - 원래 있던 값을 유지하면서 새로운 값만 추가할때에는 추가모드 ( 'a' )를 이용하면 된다.



 ↑ test.txt라는 파일을 추가모드 ( 'a' )로 열고write()를 이용해서 결과값을 기존 파일에 추가했다.

    # 추가 모드로 파일을 열었기 때문에 test.txt라는 파일이 원래 가지고 있던 내용 바로 다음부터 결과앖이 적히기 시작한다.










참고 --------------------------------------------------------

 - 점프 투 파이썬

'Python > [ Python ] 함수' 카테고리의 다른 글

[ Python ] 파이썬에서 입력과 출력  (4) 2017.03.22
[ Python ] 파이썬 함수의 개념  (0) 2017.03.21