首页 > 解决方案 > 如何在python结构中转义双引号和单引号

问题描述

我有两个双引号和一个单引号的 bash 命令,如下所示:

sudo su - postgres bash -c "psql -c \"ALTER USER postgres PASSWORD '00000000001';\" "

当我在终端中运行它时一切正常。

但是当我在python结构中使用它时,每次它都会返回语法错误

run('''echo sudo su - postgres bash -c "psql -c \"ALTER USER postgres PASSWORD '00000000003';\" " ''')

标签: pythonpostgresqlfabric

解决方案


您需要使用原始字符串来确保反斜杠保持为文字反斜杠并且不会被 Python 解释:

run(r'''echo sudo su ...''')

推荐阅读