saspython知乎_python学习笔记---linux/windows调用sas程序
--------僅用于個人學習知識整理和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/
總結
以上是生活随笔為你收集整理的saspython知乎_python学习笔记---linux/windows调用sas程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 该工程中的宏被禁止_建筑工程的发包与承包
- 下一篇: python定义变量并赋值_Python