复杂程序转义

2024-06-17 09:40:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个fabfile,我想运行一个命令来创建postgres数据库。你知道吗

SQL请求是:

CREATE DATABASE "dbname"
WITH ENCODING = 'UTF8'
     LC_COLLATE = 'en_US.UTF8'
     LC_CTYPE = 'en_US.UTF8'
     TEMPLATE = template0 
     OWNER = "dbowner";

我想用以下方法运行它:

from fabric.api import run
run("""sudo su postgres --command "psql -c 'REQUEST HERE'" """)

但是我找不到任何方法来逃避它。你知道吗

你知道我怎么做吗?你知道吗


Tags: 方法run命令数据库sqlcreatewithpostgres
2条回答

使用\对双引号字符串中的双引号with进行转义,对单引号字符串中的单引号with进行类似的转义。你知道吗

好吧,我终于做到了:

run('sudo su postgres  command \'psql -e -c "CREATE DATABASE peopleask WITH ENCODING = \'"\'"\'UTF8\'"\'"\' LC_COLLATE = \'"\'"\'en_US.UTF8\'"\'"\' LC_CTYPE = \'"\'"\'en_US.UTF8\'"\'"\' TEMPLATE = template0 OWNER = peopleask;"\'')

相关问题 更多 >