도구들/R,파이썬

[파이썬] 텍스트(txt) 파일 내 특정 문자 바꾸고 csv로 저장하기(.replace())

cactus 2022. 6. 8. 23:39

행정구역 shp 다운로드 사이트로 소개한 적 있는

통계청 SGIS 에서 제공하는 집계구별 통계 파일을 다뤄볼 것이다.

https://ryuhyun.tistory.com/43

 

[행정구역 경계] 행정동 shp 다운로드 방법(통계청 SGIS)

행정구역 경계는 통계청에서 매년 발표하고 있다. 신청해서 다운로드 가능하다. 통계청 SGIS 홈페이지(sgis.kostat.go.kr) 에 방문해 보자. https://sgis.kostat.go.kr/contents/shortcut/shortcut_05.jsp 자료제..

ryuhyun.tistory.com

 

SGIS에서는 행정구역 경계 뿐 아니라 집계구경계와 집계구경계 기준의 통계파일도 제공한다.

인구총조사 결과를 집계구 번호에 맞게 제공하고 있는데, 원본 데이터는 txt라서 파이썬에서 다루려면 가공이 필요하다.

txt 파일을 열어 보면 컬럼이 ^ 문자로 구분되어 있다.

 

먼저 파이썬에서 ^를 콤마(,) 로 바꿔줄 것이다.

txt 파일에서 찾기 바꾸기로 아주 쉽게 바꾸는 방법이 있으나.. txt 파일이 많을 경우 파이썬 loop으로 돌리는 게 훨씬 간편하다.

 

파이썬에서 txt 파일을 읽고 저장하는 방법은 아래 글에 소개하였고, 여기서는 텍스트를 바꾸고 저장하는 것을 진행한다.

https://ryuhyun.tistory.com/65

 

[파이썬] 텍스트 파일(txt) 읽고 쓰기(readline)

텍스트 파일이 대용량이거나 해서 메모장에서 열리지 않는 경우가 있다. 그럴 때 파일 내용의 일부를 파이썬에서 확인해보는 방법이 있다. 파이썬에서 텍스트 파일을 읽으려면 일단 먼저 open 을

ryuhyun.tistory.com

 

읽어올 파일을 open('파일경로','r') 로 부르고,

바꾼 후 저장할 파일을 open('저장할파일경로/파일명','w')로 지정한다. 

^를 ,로 바꾼 후 csv 로 저장하려고 한다. 아래처럼 입력한다.

f_in=open('C:읽을파일경로/23_2000년_인구총괄(총인구).txt','r')
f_out=open('C:저장할파일경로/2000총인구.csv','w')

읽을 파일은  f_in 변수에, 저장할 파일은 f_out 변수에 지정되었다.

f_in 으로 불러온 인풋 txt의 라인들을 읽어서, replace()를 통해 ^를 ,로 바꾼다.

.replace("^",",") 로 입력하면 ^가 ,로 바뀐다. 바꾼 파일을 line_replace 라는 변수에 저장하고, 프린트 해보자.

for line in f_in:
    line_replace=line.replace("^",",")
    print(line_replace)

위와 같이 입력하면 아래처럼 ^가 ,로 바뀌어서 출력된다.

 

성공적으로 바뀐 것을 확인했으니, csv로 저장하려고 하는 새 파일에 저장하자.

저장할 때는 .write() 명령어를 사용한다.

for line in f_in:
    line_replace=line.replace("^",",")
    f_out.write(line_replace)
f_in.close()
f_out.close()

파일을 읽고 수정하기 위해 open()로 연 파일들을 close()로 닫아주는 과정이 꼭 필요하다.

이제 저장된 csv 파일을 확인해 보자.

 

 

^를 ,로 바꾸고 csv 로 저장까지 성공적으로 이루어졌다.

 

반응형