结果不打印Python-SQlplus

结果不打印Python-SQlplus,python,python-2.7,sqlplus,Python,Python 2.7,Sqlplus,我编写了以下代码来运行sqlplus中的脚本 (username, password, host) = ("user","psw","isntance") conn_string = " %s/%s@%s "% (username,password,host) session = Popen(['sqlplus','-S', conn_string], stdin=PIPE, stdout=PIPE, stderr=PIPE) sql_file = '%s/%s' % ('/my/folder

我编写了以下代码来运行sqlplus中的脚本

(username, password, host) = ("user","psw","isntance") 
conn_string = " %s/%s@%s "% (username,password,host)
session = Popen(['sqlplus','-S', conn_string], stdin=PIPE, stdout=PIPE, stderr=PIPE)
sql_file = '%s/%s' % ('/my/folder', 'File.sql')
f= open(sql_file,'r')
cmd = f.read()
session.stdin.write(cmd)
stdout, stderr = session.communicate()

代码执行时没有任何错误。但是我没有看到任何结果被打印出来。我不确定哪里出错。

您的代码没有打印语句。请尝试以下代码:

(username, password, host) = ("user","psw","isntance") 
conn_string = " %s/%s@%s "% (username,password,host)
session = Popen(['sqlplus','-S', conn_string], stdin=PIPE, stdout=PIPE, stderr=PIPE)
sql_file = '%s/%s' % ('/my/folder', 'File.sql')
with open(sql_file) as f:
    stdout, stderr = session.communicate(f.read())
print 'output: %s' % stdout
print 'error: %s' % stderr