0

次のコマンドを順番に実行するpythonスクリプトを実行したい:

sudo su - postgres         #change user to postgres
psql                       #enter the psql command promt from 
create user user_name with password 'mypassword';             #
create database voylla_development with encoding = 'utf8';    #all the 3 commands are to be executed in psql command prompt
grant all on database voylla_development to user_name;        #
exit           #psql prompt
exit           #postgres user
cat <backup_file_name> | zcat - | PGPASSWORD=mypassword psql -d voylla_development -h localhost -p 5432 -U user_name

サブプロセスと os.system() を使用してみました:

cmd='sudo -u postgres psql'
args = shlex.split(cmd)
p=subprocess.Popen(args)
p.wait()

cmd1='psql'
args1 = shlex.split(cmd1)
p=subprocess.Popen(args1)
p.wait()

##and so on for each command

しかし、postgres ユーザーとしてログインすると、スクリプトが停止します。ユーザーの変更後にスクリプトを続行するにはどうすればよいですか? ありがとう

編集: psycopg2を使用すると原因が改善されました

4

1 に答える 1