我正在使用python命令模块运行mongoimport命令
status = utilities.execute(mongoimport)
utilities.py 中的
def execute(command):
if not command:
return (-1, 'command can not be empty or null')
return commands.getstatusoutput(command)
当我运行时,我将错误视为
sh: Syntax error: ";" unexpected
我看到documentation说:
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
如何修复此问题才能运行此命令?
答案 0 :(得分:1)
from subprocess import check_output
output = check_output(["ls", "-l"])
如果命令失败,这将引发错误 - 无需检查空字符串。如果您确定要通过shell传递内容,请调用此类
output = check_output("ls -l", shell=True)
请注意,通过shell传递内容是解决安全问题的绝佳方法。