Использование Python 3.6.7
на Ubuntu 18.04.2 LTS
Я пытаюсь вызвать сценарий оболочки через сценарий python и ожидаю, что стандартный вывод будет нулевым, т. Е. Я не хочу вывод консоли.
Фрагмент программы
def command_execution(self, cmd, cwd=None):
""" Execute the command cmd without console output
and return the exitcode
"""
FNULL = open(os.devnull, 'w') # Method1
self.log.debug("Executing command " + cmd)
exec_cmd = subprocess.Popen(cmd, cwd=cwd, shell=True, stdout=subprocess.DEVNULL)
# Method1 call exec_cmd = subprocess.Popen(cmd, cwd=cwd, shell=True, stdout=FNULL)
(_,_) = exec_cmd.communicate()
exitcode = exec_cmd.returncode
self.log.debug("Executed command {0} with exitcode {1}".format(cmd, exitcode))
return exitcode
Как уже упоминалось выше, я пробовал оба метода FNULL
и subprocess.DEVNULL
. Но я все еще вижу вывод на консоли.
Я что-то здесь упускаю?