Я пытаюсь измерить время выполнения в секундах исполняемой программы, вызванной через подпроцесс. Я не хочу, чтобы выводился исполняемый файл (либо stderr, либо stdout).
Я пробовал библиотеки timeit и ресурсов, но не точно фиксировал время процесса, похоже, он только фиксирует время в рабочем потоке Python.
Эта попытка ниже потеряет информацию о времени b/c перенаправления stderr. Однако, без перенаправления stderr, выдается команда 'f_cmd' stderr output.
def doWithTiming(f_cmd):
DEVNULL = open(os.devnull, 'w')
return subprocess.check_output([ "/usr/bin/time", "--format=%e seconds"] + f_cmd.split(), stderr=DEVNULL)
Как игнорировать весь вывод f_cmd, но сохранить вывод/usr/bin/time?