1

我正在使用 python 命令模块运行 mongoimport 命令

status = utilities.execute(mongoimport)

实用程序.py

def execute(command):
    if not command:
        return (-1, 'command can not be empty or null')
    return commands.getstatusoutput(command)  

当我运行它时,我看到错误为

sh: Syntax error: ";" unexpected 

我看到文档说:

commands.getstatusoutput(cmd)
Execute the string cmd in a shell with os.popen() and return a 2-tuple (status, output). cmd is actually run as { cmd ; } 2>&1, so that the returned output will contain output or error messages  

我该如何解决这个问题才能运行这个命令?

4

1 回答 1

1

使用子流程模块

from subprocess import check_output
output = check_output(["ls", "-l"])

如果命令失败,这将引发错误 - 无需检查空字符串。如果您真的确定要通过外壳传递东西,那么像这样调用

output = check_output("ls -l", shell=True)

请注意,通过 shell 传递内容是解决安全问题的绝佳媒介。

于 2012-05-08T19:36:17.533 回答