我想迭代特定文件夹中的文件,并提取其文件名的子字符串。有一个简单的方法吗?
lib dir '.../folder';
#iterate through all files of dir and extract first five letters of file name;
#open files and do some processesing, aka data steps proc steps;
答案 0 :(得分:3)
首先,我指出" dir"似乎是拼写错误的libref,而不是文件夹。如果要查找文件夹中的文件,可以使用:
%macro get_filenames(location);
filename _dir_ "%bquote(&location.)";
data filenames(keep=fname);
handle=dopen( '_dir_' );
if handle > 0 then do;
count=dnum(handle);
do i=1 to count;
fname=subpad(dread(handle,i),1,5);/* extract first five letters */
output filenames;
end;
end;
rc=dclose(handle);
run;
filename _dir_ clear;
%mend;
%get_filenames("c:\temp\");
如果您在库中寻找数据集,您可以使用:
proc sql;
create table datasets as
select substr(memname,1,5) as dataset
from dictionary.tables
where libname='LIB'; /* must be uppercase */
任何一种方法都会产生一个'文件的数据集。随后可以逐步完成' ..