행정구역 shp 다운로드 사이트로 소개한 적 있는
통계청 SGIS 에서 제공하는 집계구별 통계 파일을 다뤄볼 것이다.
https://ryuhyun.tistory.com/43
SGIS에서는 행정구역 경계 뿐 아니라 집계구경계와 집계구경계 기준의 통계파일도 제공한다.
인구총조사 결과를 집계구 번호에 맞게 제공하고 있는데, 원본 데이터는 txt라서 파이썬에서 다루려면 가공이 필요하다.
txt 파일을 열어 보면 컬럼이 ^ 문자로 구분되어 있다.
먼저 파이썬에서 ^를 콤마(,) 로 바꿔줄 것이다.
txt 파일에서 찾기 바꾸기로 아주 쉽게 바꾸는 방법이 있으나.. txt 파일이 많을 경우 파이썬 loop으로 돌리는 게 훨씬 간편하다.
파이썬에서 txt 파일을 읽고 저장하는 방법은 아래 글에 소개하였고, 여기서는 텍스트를 바꾸고 저장하는 것을 진행한다.
https://ryuhyun.tistory.com/65
읽어올 파일을 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 로 저장까지 성공적으로 이루어졌다.
'도구들 > R,파이썬' 카테고리의 다른 글
[파이썬] for 문으로 년월일 출력해보기(다중 for문), range() 로 숫자 리스트 만들기 (0) | 2022.08.01 |
---|---|
[파이썬] 파일 읽을때 인코딩 에러 'cp949' codec can't decode byte 0x80 in position 7: illegal multibyte sequence (0) | 2022.07.26 |
[파이썬] 파이썬 연결자 콤마(,)와 더하기(플러스)(+)의 차이 (0) | 2022.06.08 |
[파이썬] 판다스 csv 불러올때 인코딩 에러('utf-8' codec can't decode ) (0) | 2022.05.13 |
[파이썬] 뷰티풀수프bs4 - html 태그 삭제하기(.decompose()) (0) | 2022.04.25 |