是否可以通过使用“X”命令传递的命令行语句等将宏变量从SAS传递给Python?到目前为止,我已经想出了一种方法,包括将宏变量写入文本文件,然后让Python读取 .

该方法似乎是一个可能的香蕉皮,代码中有一个关键步骤写出文本文件 . 我已经在网上浏览了一些可能的方法,但没有真正发现任何东西 .


代码将动态生成以下字符串:

%let loader = "%NRSTR(finance.yahoo.com/d/... &svar11.+&svar12.+&svar13.+&svar14.+&svar15.+&svar16.+&svar17.+&svar18.+&svar19.‌​+&svar20.+ &svar21.+&svar22.+&svar23.+&svar24.+&svar25.+&svar26.+&svar27.+&svar28.+&svar29.‌​+&svar30.+ &svar31.+&svar32.+&svar33.+&svar34.+&svar35.+&svar36.+&svar37.+&svar38.+&svar39.‌​+&svar40.+ &svar41.+&svar42.+&svar43.+&svar44.+&svar45.+&svar46.+&svar47.+&svar48.+&svar49.‌​%NRSTR(&f=)&&fvar&a.";

这里宏变量将解析为代码中早期为各种交换提供的股票代码 . 我的原始版本的代码将此字符串放在文件名url语句中,但这证明太慢,所以我在Python中构建了一些更快但仍然是硬编码的东西 . 雅虎!流这将不会支持超过约200个代码,并且每天更新交易的代码,因此我不能对它们进行硬编码 .

粗略的想法是通过X命令将宏变量和加载器传递给命令行,然后Python以某种方式拾取它 . 文本文件方法是将上面解析的字符串的值写出到文本文件,然后从SAS调用一些Python代码(我很好,如何做到这一点),这将在文本末尾创建一个变量文件 . 如果可以通过命令行直接从SAS将变量传递给Python来完成所有操作,我认为这样会更加清晰 .