Python - psql提示密码即使它得到它

时间:2016-09-14 14:48:25

标签: python postgresql pysftp

我正在处理一个小代码,必须:

  • 使用SFTP连接
  • 在PostgreSQL上执行命令(密码保护)

我愿意将密码用作纯文本。

目前我的代码是:

import pysftp

command = "... some SQL command"

sftp= pysftp.Connection('server_name', username='username', password='password')
sftp.execute("export PGPASSWORD='password_to_psql'")
sftp.execute("psql -h 127.0.0.1 -d {} -U {} -W -c "{}"").format(database_name, user_name, command)
sftp.close()

我认为这是个好主意,但是当我在终端输入正确的命令时,shell会提示输入密码(但不是必需的,当我输入'时,一切都会被执行。

有谁知道我怎样才能禁用'提示,这不是必需的?

1 个答案:

答案 0 :(得分:1)

psql有一个--no-password选项,也可以指定为-w

看起来您可能拼错了-w -W,这会产生相反的效果。