【发布时间】:2020-12-20 07:04:36
【问题描述】:
假设我有这个sn-p
list_command = 'mongo --host {host} --port {port} ' \
'--username {username} --password {password} --authenticationDatabase {database} < {path}'
def shell_exec(cmd: str):
import subprocess
p = subprocess.call(cmd, shell=True)
return p
假设这些是我试图在 mongo 上运行的命令
use users
show collections
db.base.find().pretty()
如果使用适当的值格式化字符串 list_command 并使用 shell=True 将其传递给函数,它可以正常工作。但出于安全目的,我试图避免它。 如果我用 shell=False 调用它,我会收到以下错误:
2020-08-31T14:08:49.291+0100 E QUERY [thread1] SyntaxError: missing ;声明之前@./mongo/user-01-09-2020:1:4 加载失败:./mongo/user-01-09-2020 253
【问题讨论】:
标签: python python-3.x mongodb shell subprocess