BookmarkSubscribeRSS Feed

[SAS 프로그래밍 고수 백승민] [filename] 도로명우편번호 내려받기 자동화 프로그램(웹상의 압축 파일 읽기)

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 156

* 출처 : 통계분석연구회(http://cafe.daum.net/statsas/3F8j/210);

* 도로명우편번호 내려받기 자동화 프로그램;

 

* 도로명 우편번호 내려받아서 SAS에서 자동으로 읽는 프로그램입니다.;
* 웹상의 자료나 압축 자료에 대한 자동화 프로세스를 구현하시고자 하는 분들에게 도움이 되기를 바랍니다;

* 도로명주소(신주소)가 시행된 이후에 우편번호를 월에 한번씩 내려받는 작업에 대한 자동화 프로그램;


* 우편번호에 대하여 우정국에서 FTP 서비스를 제공을 안해주어서 기존에 수작업으로 작업을 하였으나,;
* WGET 이라는 실행파일을 지인께서 알려주셔서 자동화 프로그램으로 변경하였습니다.;

* WGET 는 원래 리눅스 프로그램인데, 윈도우로 변환된 프로그램이 있다고 합니다.;


* 첨부 파일을 압축 해제후 C:\WINDOWS\system32 에 복사하시면, 다른 폴더에서도 실행 가능;

* 첨부 파일 위치 : http://cafe.daum.net/statsas/3F8j/210

 

* DOS 명령어, START.EXE와 iexplore.exe 명령어로 내려받기 하려했는데 실패;
*  DOS로 명령어가 구현되면, WGET 파일은 필요 없을듯 합니다.;
* (DOS나 BATCH 파일을 잘 아시는 분 계시면 알려주시면 감사하겠습니다.);


* 대상 사이트 : 우정사업본부;
* 주소 : http://www.epost.go.kr/search/zipcode/newAddressDown.jsp;

 

* CMD창 처리;
OPTIONS NOXWAIT NOXSYNC;

 

*****************************************************************************************;
* 방법 1 : 1개 파일 처리;
*****************************************************************************************;
* WGET 실행파일을 사용하여 ZIP파일 다운로드;
* FILENAME구문에서 PIPE를 사용하여서 압축파일 해제 및 읽기;

x 'wget  --directory-prefix=C:\WORK http://www.epost.go.kr/search/zipcode/Sejong.zip';
filename testpipe pipe 'unzip -p "C:\WORK\Sejong.zip"' ;

data report ;
     * Read data from pipe ;
     infile testpipe DLM='|' MISSOVER  FIRSTOBS=2 LRECL=32767 ;
     input var1 $
           var2 $;
run ;

*****************************************************************************************;
* 방법 1 : 다수 파일 처리;
*****************************************************************************************;
x 'wget  --directory-prefix=C:\WORK http://www.epost.go.kr/search/zipcode/Sejong.zip';
x 'wget  --directory-prefix=C:\WORK http://www.epost.go.kr/search/zipcode/Gwangju.zip';
x 'wget  --directory-prefix=C:\WORK http://www.epost.go.kr/search/zipcode/Daejeon.zip';

* WORK에 있는 ZIP파일을 모두 압축을 풀고, 읽기;
filename testpipe pipe 'unzip -p "C:\WORK\*.zip"' ;

OPTIONS validvarname = any;
data POST_CODE;
     INFILE testpipe DLM='|' MISSOVER  FIRSTOBS=2 LRECL=32767 dsd;
     INPUT  우편번호         : $6.
               우편번호일련번호 : $3.
               시도             : $20.
                 시도영문         : $40.
               시군구           : $40.
                 시군구영문       : $50.
               읍면             : $40.
                 읍면영문         : $50.
               도로명코드       : $12.
               도로명           : $50.
                 도로명영문       : $50.
               지하여부         : $10.
               건물번호본번     : $10.
               건물번호부번     : $10.
               다량배달처명     : $100.
               법정동코드       : $100.
               법정동명         : $100.
                 지번본번       : $10.
                 지번부번       : $10.
                 시군구용건물명 : $10.
               건물관리번호     : $40.;
RUN;


*****************************************************************************************;
* 방법2 : 기존 처리방식;
* 17개 파일을 모두 수동으로 다운 후 압축을 풀고, FILEVAR옵션을 사용하여 자동화;
*****************************************************************************************;
OPTIONS validvarname = any;
data POST_CODE;
     length fileloc myinfile $ 300;
     input fileloc $ ;

     INFILE DUMMY FILEVAR=FILELOC FILENAME=MYINFILE END=DONE
            DLM='|' MISSOVER  FIRSTOBS=2 LRECL=32767 dsd;
     DO WHILE(NOT DONE);
        INPUT  우편번호         : $6.
               우편번호일련번호 : $3.
               시도             : $20.
                 시도영문         : $40.
               시군구           : $40.
                 시군구영문       : $50.
               읍면             : $40.
                 읍면영문         : $50.
               도로명코드       : $12.
               도로명           : $50.
                 도로명영문       : $50.
               지하여부         : $10.
               건물번호본번     : $10.
               건물번호부번     : $10.
               다량배달처명     : $100.
               법정동코드       : $100.
               법정동명         : $100.
                 지번본번       : $10.
                 지번부번       : $10.
                 시군구용건물명 : $10.
               건물관리번호     : $40.;
        OUTPUT;
     END;
datalines;
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_강원도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_경기도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_경상남도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_경상북도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_광주광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_대구광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_대전광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_부산광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_서울특별시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_울산광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_인천광역시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_제주특별자치도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_세종특별자치시.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_전라남도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_전라북도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_충청남도.txt
F:\BACK\백승민개인업무\기타업무\새주소컨버젼\우체국-1226(20130109)\20121226_충청북도.txt
;
run;

 

* 기타 도스 명령어(참고용-따로 정리안하였습니다);
* START : 프로그램 실행;
* iexplore : 실행창 명령어;

X 'START iexplore http://www.epost.go.kr/search/zipcode/Sejong.zip > c:\Sejong.zip -noframemerging';
X "CD WORK";
X "START   http://www.epost.go.kr/search/zipcode/Sejong.zip";
x "START /D 'C:\work' /B http://www.epost.go.kr/search/zipcode/Sejong.zip";
X 'START /D "c:\work" iexplore http://www.epost.go.kr/search/zipcode/Sejong.zip -nomerge';
x 'cd C:\Program Files\ESTsoft\ALZip';
x 'alzipcon -x -xf "D:\DATA\바탕 화면\새 폴더 (2)\test.zip"  "D:\DATA\바탕 화면\새 폴더 (2)"';

 

 

Version history
Last update:
‎06-11-2020 09:58 PM
Updated by:
Contributors

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags