BG-SAS

应用sas在ftp上批量下载文件

2018-05-25  本文已影响0人  _瑾_瑜_

应用sas在ftp上批量下载文件

做数据分析,难免会有其他的数据获取方式,求人不如求己,用sas的小伙伴不要气馁!

接下来让我们看一下sas代码实现在ftp上批量下载文件

首先我们先上代码:

%macro getfile(lcd,cd,user,pwd,host);

  filename dir ftp '' ls user="&user." pass ="&pwd."

        host="&host."  cd = "&cd." prompt;

/*获取ftp的cd地址下的文件目录*/

data _null_;

    length fname $50.;

    infile dir;

    input fname;

    put fname = ;

/*生成宏变量和循环次数*/

    call symput(compress("fname"||_N_),compress(fname));

    call symput("count",_N_);

run;

    %do i = 1 %to &count.;

    filename remote ftp "&cd." DIR

                    host="&host."

                    user="&user." pass="&pwd." prompt rcmd="binary" recfm=s debug;

  filename local "&lcd." recfm=n;

/*文件下载*/

  data _null_;

    infile remote("&&fname&i.") NBYTE=n;

    input;

    file local("&&fname&i.");

    put _infile_ @@;

  run;

%end;

%mend;

然后我们就代码里的细节进行掌握

我们就libname与filename的区别来理解filename的应用

libname:libname是建立一个逻辑库,表示一个library

filename: 是用来表示一个计算机中的文件 ,也可以是一个目录,Filename的文件需要通过input变化为数据                    集才能使用

如果想实现上传只需要把“文件下载”里的remote和local进行调换

下面来看一下_null_数据集里内容就是ftp目标文件夹里的文件名

还有最后下载结果:

是不是很强大,所有格式都没问题!!!

上一篇下一篇

猜你喜欢

热点阅读