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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值