【发布时间】:2014-07-30 10:56:00
【问题描述】:
我必须使用 python 运行 isql 命令。
目前我正在这样做
ps = subprocess.Popen("""./isql -I /app/sybase/interfaces_global -S %s -U %s -P %s -D %s -s "|" -w 99999 <<EOF
SET NOCOUNT ON
%s
go
EOF""" %(mdbserver,muserid,mpassword,mdatabase,User_Query),stdout=subprocess.PIPE,shell=True,cwd=sybase_path)
但是这个方法依赖于我服务器的 /tmp 目录,因为这里的文档,每次我运行它时,它都会在 /tmp 目录中创建一个 tmp 文件,当 /tmp 目录已满时,脚本无法对数据库运行查询。
我怎样才能用shell=False 使用相同的命令,这样我就可以摆脱这里的文档“””和临时文件的创建。
这不起作用
ps = subprocess.Popen("./isql","-I","/app/sybase/interfaces_global","-S",mdbserver,"-U",muserid,"-P",mpassword,"-D",mdatabase,"-s","|","-w","99999","\nSET NOCOUNT ON\n",User_Query,"\ngo",stdout=subprocess.PIPE,shell=False,cwd=sybase_path)
【问题讨论】:
标签: python subprocess