BookmarkSubscribeRSS Feed

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

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

* 출처 : 통계분석연구회(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

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags