postgres命令在shell中工作,但不在python脚本中工作

postgres命令在shell中工作,但不在python脚本中工作,python,postgresql,Python,Postgresql,我正在尝试使用一个转储文件从python脚本创建一个postgres数据库 以下是我尝试的代码: cmd='cat dump.sql.gz | zcat - | PGPASSWORD=my_password psql -d voylla_solr -h localhost -p 5432 -U user_name' args = shlex.split(cmd) p=subprocess.Popen(args) p.wait() 我还尝试使用不同的命令: cat dump.sql | PGPA

我正在尝试使用一个转储文件从python脚本创建一个postgres数据库

以下是我尝试的代码:

cmd='cat dump.sql.gz | zcat - | PGPASSWORD=my_password psql -d voylla_solr -h localhost -p 5432 -U user_name'
args = shlex.split(cmd)
p=subprocess.Popen(args)
p.wait()
我还尝试使用不同的命令:

cat dump.sql | PGPASSWORD=my_password psql -d voylla_solr -h localhost -p 5432 -U user_name
编辑*:我使用了以下命令:

subprocess.Popen("zcat dump.sql.gz | PGPASSWORD=my_password psql -d voylla_solr -h localhost -p 5432 -U user_name", shell=True);
它可以工作,但不会在创建数据库后停止。创建数据库操作系统后,如何停止其执行

这两个命令都在命令行中工作,但在python脚本中不工作。我做错了什么你可以简单地说:

subprocess.Popen("zcat dump.sql.gz | PGPASSWORD=my_password psql -d voylla_solr -h localhost -p 5432 -U user_name", shell=True);

(另请参阅。)

此操作有效,但在创建数据库后,命令的执行不会停止!!如何在创建数据库后停止它?这可以工作,但在创建数据库后命令的执行不会停止!!如何在创建数据库后停止它?