이번 시간에는 프로그래밍을 할 때 가장 중요한 요소 중 한가지인 파일 읽고 쓰기에 대해 알아보려고 합니다. 어떤 프로그램을 잘 만들었다고 하더라도 1회성으로 그 자료가 없어진다면 별 의미없는 작업이 될 것입니다. 데이터로 저장을 하고 이렇게 저장되거나 DB로 만들어 둔 자료들을 가지고 제2, 제3의 유용한 자료로 활욜할 수 있게 된다면 그제서야 자료로서 유용해질 것이기 때문입니다. 보통 이렇게 제2, 제3의 데이터로 활욜할 수 있는 분야들을 요즘에는 메타 데이터, 또는 빅데이터라고 하는 분야에 활용이 됩니다. 이 모든 사항들이 데이터가 기록이 이루어질 때 비로소 가능합니다. 그러려면 저장을 해야하는데 그러기 위한 단계가 파일의 형태로 남기는 것이겠죠. 자 그럼 시작을 해 볼까요?
fw = open('test.txt', 'w')
파이썬에서 파일을 다룰때는 기본적으로 파일을 열고, 닫아야 하는 과정을 거칩니다. 파이썬 뿐만 아니라 대부분의 프로그래밍 언어에서 그렇습니다. 이는 파일을 열었으면 닫아줘야 가용 메모리의 낭비를 막을 수 있기 때문입니다. 우선 파이썬에서 파일 열기는 open() 의 형태로 이루어집니다. open(첫번째,두번째): 첫번째 인자는 파일의 이름입니다. 여기에는 확장자(extension)도 함께 넣어줍니다. 두번째는 모드입니다. 모드는 'w':Write, 'r':Read, 'a':Append 모드 이렇게 나눌수 있습니다. 여기서는 쓰기모드로 test.txt파일을 열었습니다. 그리고 그것을 변수 fw(filewrite)라고 하는 임의의 값에 저장을 하게 하였습니다.
fw.write('These are python tutorials for beginner\n')
위에서 파일을 열어 fw에 넣었고, 이제는 이 fw에 쓰기를 하겠습니다. 즉, fw.write() 입니다. 괄호() 안에 넣고자 하는 값이 들어가면 됩니다. 여기서는 위와 같은 문장을 넣어주었습니다. 그리고 \n 을 넣어준 이유는 줄바꿈을 하게 한다는 의미입니다. 개행.
fw.write('I love to make some program\n')
또 다른 한줄을 더 넣어주었습니다.
fw.close()
위에서 언급 하였듯이, 파일을 열었으니 닫아 주어야겠죠? 위와 같이 닫아주면 됩니다.
실행을 시켜보니 위의 그림처럼 왼쪽 네비게이션 바에 test.txt 파일이 생성이 되었습니다. 확인을 위해 클릭을 해보면...
위의 그림처럼 프로그래밍적으로 만든 값이 고스란히 잘 들어가 있습니다.
이번에는 이렇게 만든 test.txt 파일을 프로그래밍으로 읽어보겠습니다.
fr = open('test.txt', 'r')
쓰기와 마찬가지로 파일을 열고 파일명, 모드를 정하여주고 fr(file read) <--- (임의의 값입니다. 아무거나 상관없습니다.) 에 저장을 하였습니다.
이렇게 읽어들인 fr.read() 값을 sentences 에 넣어주겠습니다.
sentences = fr.read()
지금까지 읽어들인 파일의 내용을 확인하기 위해 프린트를 사용하겠습니다.
그리고 열어주었으니 마지막은 닫아야겠죠? 위 코드처럼 파일을 닫습니다.
결과를 확인하기 위해 실행을 시켜봅니다.파일로 만들고 그 값을 읽어들여 출력을 하게 한다. 이것이 위 코드의 일련의 과정입니다. 공식은 파일을 연다(모드에 따라서) 내용을 처리한다, 파일을 닫는다. 딱 이렇게 3단계 입니다. 여기까지 파일의 쓰고 읽기에 대해 알아보았습니다. 수고하셨습니다.
'Programming > Python Tutorials' 카테고리의 다른 글
[PYTHON 3] Tutorials 24. 웹 크롤러(like Google) 만들기 1 - How to build a web crawler (63) | 2015.11.30 |
---|---|
[PYTHON 3] Tutorials 23. Downloading Files from the web - 파일 다운로드 하기 using 파이썬 (10) | 2015.11.27 |
[PYTHON 3] Tutorials 21. Download images from the web - 이미지(사진) 다운로드 하기 with 파이썬 (6) | 2015.11.25 |
[PYTHON 3] Tutorials 20. Modules(모듈화) (0) | 2015.11.25 |
[PYTHON 3] Tutorials 19. Dictionary (0) | 2015.11.24 |