Skip to content

Commit

Permalink
도로명 주소 파싱 스크립트
Browse files Browse the repository at this point in the history
  • Loading branch information
greeng00se committed Sep 19, 2023
1 parent 1282cf8 commit 9dc563d
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions docs/backend/코드/도로명 주소 분리.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
title: 도로명 주소 파싱 스크립트
slug: /backend/code/address
last_update:
date: 2023/09/19
author: 허브
---

### 도로명 주소 파싱 스크립트

도로명 주소 파일이 있는 곳에 해당 스크립트로 python 파일을 생성한 후 다음 명령어로 실행하면 됩니다.

```
python3 address.py
```

```python title=address.py
import os


def scan(file_name):
# with 구문으로 파일을 읽기 전용으로 읽어옵니다.
# f.readline()을 이용하여 한 줄씩 읽어올 수 있습니다.
with open(os.path.join("./" + file_name), 'r', encoding='cp949') as f:
while True:
line = f.readline()
if not line:
break

# 주소가 들어간 파일이 | 기준으로 분리되어있기 때문에 | 기준으로 분리합니다.
splited_line = line.split('|')
address1 = splited_line[2]
address2 = splited_line[3]
address3 = splited_line[4]

# ' ' 로 구분된 값으로 저장합니다 이는 추후에 ,로 변경하여 csv 형태로 저장할 수 있습니다.
addresses.add(' '.join([address1, address2, address3]))


# 출력을 지정합니다. 파일이 없다면 파일이 생성됩니다.
fout = open('./doro.txt', 'w')

# 주소가 들어갈 set
addresses = set()

# 현재 폴더에 있는 모든 파일을 순회합니다.
# 파일이 txt로 끝나는 경우에 해당 파일에 대해 스캔하여 주소 set에 담습니다.
for file_name in os.listdir("./"):
if (file_name.endswith('txt')):
print(file_name)
scan(file_name)

# 모든 파일의 순회가 끝난 경우 인천광역시 연수구 동춘동의 형태로 출력할 파일에 저장합니다.
for address in addresses:
fout.write(address + '\n')

```

0 comments on commit 9dc563d

Please sign in to comment.