--------仅用于个人学习知识整理和sas/R语言/python代码整理
--------文章使用数据都为脱敏模拟数据
1.windows下
1.1 安装sas kernel:
跑偏了一下 其实不用装sas_kernel的,这个是要在jupyter里用sas才会需要装
出现了报错
换镜像解决
出现报错 加 - -user解决
参考
1.2 python中通过调用bat脚本运行sas
import os
shell_code='path\\sas.bat ' + \
'path\\test.sas '+ \
'path\log\\test.log'
val = os.popen(shell_code)
val.readlines()
bat脚本的编写:
主要要注意路径(特别是work)及权限问题(linux下更明显)
@rem "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -echoauto -nosplash -noovp -SYSIN
"%1" -log "%2" -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\zh\sasv9.cfg"
"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -echoauto -nosplash -noovp -SYSIN
"%1" -log "%2" -config "C:\soft\sasv9_4g.cfg" -WORK "z:\sas\work"
2.linux下
2.1 遇到的问题:
2.2.1. 调用sas时 在terminal中调用会遇到“SAS 启动期间未能附加至 Java”问题:
在和sas support联系后 其实是添加不启动图形化界面选项可以解决 : sas -nodms
2.2.2. sas在linux下显示乱码
使用./sas_u8 -nodms
2.2.3. 直接将opt/SASHome/SASFoundation/9.4/bin/sas_u8 挂载到bin下可以直接用sas调用
sudo ln -s /opt/SASHome/SASFoundation/9.4/bin/sas_u8 /bin/sas
2.2 py调用bash脚本
import os
import datetime
path_input='/home/test/'
timestamp=datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')
shell_code='{0}test.sh {0}test.sas /tmp/saslog/test_{1}.log'.format(path_input,timestamp)
val = os.popen(shell_code)
val.readlines()
bash脚本的编写:
#!/bin/bashsas -nodms "$1" -log "$2" -work /tmp/sastmp/