python脚本中的shell脚本,参数为sql脚本
Python脚本:python脚本中的shell脚本,参数为sql脚本,python,sql,shell,Python,Sql,Shell,Python脚本: import subprocess proc = subprocess.Popen(['sh ' + '/dir_path/script_to_Call_sql_script.sh ' + '\"select ID,DATE,STATUS from XYZ_TABLE;\"'], stdout=subprocess.PIPE, shell=True) (out, err) = proc.communicate() BOOK=out.split() 上述脚本不适用于提供输出
import subprocess
proc = subprocess.Popen(['sh ' + '/dir_path/script_to_Call_sql_script.sh ' + '\"select ID,DATE,STATUS from XYZ_TABLE;\"'], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
BOOK=out.split()
上述脚本不适用于提供输出。但脚本从同一目录中提取默认脚本select.sql
如果我删除了select.sql查询,则会出现以下错误:
SP2-0310: unable to open file "select.sql"
我想把不同的(总共6个)SQL脚本一个接一个地传递给这段代码。
例如:
proc = subprocess.Popen(['sh ' + '/dir_path/script_to_Call_sql_script.sh ' + ' first.sql'], stdout=subprocess.PIPE, shell=True)
下面的代码解决了我的问题。我使用os.popen而不是subprocess.popen
os.popen('./dir_path/script_to_Call_sql_script.sh sql_query.sql').read()
谢谢大家:-)为什么要指定
sh
和shell=True
?可能是通过从shell调用shell来剥离引号。如果脚本具有执行权限和#代码>行然后您不需要sh
或shell=True
。而不是/dir\u path/script\u调用\u sql\u script.sh
我正在使用sh
。。。即使删除后,我也会得到同样的错误。脚本仅查找select.sql文件