Вероятно, вы захотите запросить sashelp.vtable, в котором содержатся метаданные о вашем наборе данных. Предполагая, что ваши данные находятся в библиотеке WORK и называются TABLE, следующее создает список переменных, которые заканчиваются ASK.
proc sql;
select name into :varlist separated by " "
from sashelp.vcolumn
where libname="WORK" and memname="TABLE" and upcase(name) like '%_ASK';
quit;
*To rename the variables with MID generate a rename statement;
proc sql;
select catx("=", name, tranwrd(upcase(name), "_ASK", "_MID"))
into :rename_list separated by " "
from sashelp.vcolumn
where libname="WORK" and memname="TABLE" and upcase(name) like '%_ASK';
quit;
%put &rename_list;
data want_ask;
set work.table
(keep = &varlist);
rename &rename_list;
run;
Просто создайте внутри себя диктовку и верните ее из функции:
def get_dic(file):
phone = {}
names = None
for line in file.readlines():
if line[0] == '#':
names = line.strip()
phone[names] = ""
else:
phone[names] += line.strip()
return phone
argentina = get_dic(open(sys.argv[1],'r'))