从Web下载zip文件,解压缩并使用sas导入到数据集

时间:2014-01-30 13:17:04

标签: download sas unzip

我想从网上下载一个zip文件并解压缩并将该文件导入sas数据集以供进一步使用。

对于解压缩,我使用下面的sas代码..但结果没有任何错误。

data _null_;
x "cd C:\Program Files\7-Zip ";
X "7z.exe e C:\Users\Ravinder\Downloads\Compressed\*.zip -o C:\sasdata\New";
run;

请帮忙做同样的事。

ravinder kumar

2 个答案:

答案 0 :(得分:0)

您是否尝试过从命令提示符运行命令?它有用吗?我建议像这样运行命令,而不是先更改文件夹:

"C:\Program Files\7-Zip\7z.exe" e C:\Users\Ravinder\Downloads\Compressed\*.zip -o C:\sasdata\New

当您从SAS运行上述命令时,使用单引号作为命令的字符串分隔符,如下所示:

data _null_;
  X '"C:\Program Files\7-Zip\7z.exe" e C:\Users\Ravinder\Downloads\Compressed\*.zip -o C:\sasdata\New';
run;

如果它仍然无法按预期工作,那么调试IMO的最简单方法是将命令放在批处理文件(.bat)中,然后在文件末尾添加一行简单地说{ {1}}。 pause命令将告诉窗口保持批处理文件窗口打开,直到您关闭它。该窗口将让您完全了解运行命令时发生的情况。尝试从SAS运行批处理文件,而不是直接运行命令。

请注意,如果您希望SAS在SAS程序继续处理之前等待解压缩完成,您可能还需要指定以下SAS选项:

选项noxwait xsync;

pause告诉SAS在命令运行后自动关闭命令窗口,noxwait告诉SAS在继续处理之前等待命令完成运行。请注意,有时在提取文件时,命令可以完成,但由于网络复制和/或缓存,文件仍然不会存在于磁盘上。如果你想绝对肯定,你应该检查文件是否存在和/或告诉sas xsync一段时间。

答案 1 :(得分:0)

这是我的问题解决方案..文件下载到c:\ sasdata位置。

data _null_;
x "cd c:\sasdata";
x "curl -A 'Mozilla/4.0' -O http://nseindia.com/content/indices/histdata/CNX%20NIFTY&FRNAME-&FRNAME..csv";
run;