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 ] 파이썬에서 입력과 출력 (4) | 2017.03.22 |
---|---|
[ Python ] 파이썬 함수의 개념 (0) | 2017.03.21 |
좀 알려주세요 현기증 난단 말이에요..