본문 바로가기
Python/Basic Data Analysis

[Python] 파일 읽기, 쓰기

by JKyun 2017. 3. 29.

안녕하세요. 우주신입니다.


이번 포스팅에서는 파일을 읽고 쓰는 방법에 대해 정리해보겠습니다.




우선, 바탕화면에 새폴더를 만들고 주소를 복사합니다.


참고로, 윈도우의 경우, 탐색기(폴더창)의 윗 부분에 주소가 있고

의 경우, 



이 상태에서 option(alt) 키를 누르면 '우주신' 복사 부분이 경로이름 복사로 바뀝니다. 


파일은 open() 함수를 사용하여,


"파일 객체 = open(파일이름, 파일열기모드)"와 같은 형식으로 접근합니다.


파일열기모드는 크게 읽기모드(r), 쓰기모드(w), 추가모드(a)가 있습니다.


마지막으로, f.close() 함수를 통해 파일을 닫아주면 됩니다.


 


<파일 쓰기모드>


1. 문자열 쓰기

첫 줄에서 open(파일이름, 쓰기모드) 함수를 사용하여 쓰기모드(w)로 파일을 열었습니다.


변수 a에 "Hello, Space!\n" 문자열을 넣은 후,

f.write() 함수를 이용하여 내용을 입력했습니다.



그럼 위와 같이 새파일.txt 명을 가진 파일이 생성 됐고,


열어보면 Hello, Space! 문자열이 들어간 것을 확인할 수 있습니다.



2. 리스트 쓰기


이번에는 리스트를 파일에 쓰는 방법에 대해 보겠습니다.


첫 줄에서 리스트 b를 만들었습니다.


open() 함수를 사용해 파일에 접근 하였으며, 똑같은 파일에 내용을 추가하기 위해 파일열기모드를 a로 했습니다.


f.write(' '.join( )) 함수의 형태를 사용하면 리스트를 쓸 수 있는데,

' ' 안에는 리스트 요소를 구분할 기호를 써주면 되고 .join( ) 안에는 리스트명을 넣어주면 됩니다.


리스트 b의 요소들을 줄바꿈(\n)으로 구분한 것을 확인할 수 있습니다.



f.writelines()를 이용해서 리스트를 파일에 쓸 수도 있습니다.

리스트 c를 f.writelines()를 이용하여 파일에 넣어봤습니다.


'456defQ2'가 연결돼서 들어간 것을 볼 수 있습니다. 


위와 같이 줄바꿈으로 구분을 하고 싶다면, c = ['456\n', 'def\n', 'Q2\n']와 같이 써주면 됩니다.




<파일 읽기>


1. f.read() 함수 이용


파일에 있는 내용을 읽어야 하니 읽기모드(r)로 열어야 하겠죠?

f.read() 함수는 문자열 전체를 반환합니다.

결과값을 받은 a를 출력한 결과입니다.



2. f.readline() 함수 이용


f.readline() 함수는 한줄씩 반환합니다.

파일을 열고 f.readline() 함수를 실행해봤습니다. 첫번째 줄에 있는 문자열이 나온 것을 확인할 수 있습니다.


f.readline() 함수를 이용하여 전체를 출력하고 싶을 땐 while, for 반복문을 활용하시면 됩니다.

while 1: 을 통해 무한반복 설정을 해준 후,

f.readline( ) 함수를 실행해 한줄씩 변수 a에 넣어줍니다.

그리고 a에 None 값이 들어갈 때까지 출력을 해주는데, 파일에 더 이상 읽을 라인이 없으면 a에 None 값이 들어갑니다.



3. f.readlines() 이용


f.readlines()는 리스트로 결과값을 반환합니다. 

각각의 줄에 있는 내용을 하나의 요소로 인식하여 이를 리스트로 반환한 것을 확인할 수 있습니다.





수고하셨습니다.





댓글