Я пытаюсь использовать python, чтобы запустить программу несколько раз и записать вывод в файл. Я выполняю этот простой код для тестирования, где clwb - это скомпилированный программный файл:
#!/usr/bin/env python3
from subprocess import time, call,DEVNULL,STDOUT,check_output,CalledProcessError
import shlex
with open("results/output.csv", 'w') as csvfile:
command_to_execute="time ./clwb"
call(shlex.split(command_to_execute),stdout=DEVNULL,stderr=STDOUT)
result=check_output(shlex.split(command_to_execute), universal_newlines=True)
csvfile.write(result+" \n")
Я выполняю эту программу на python3 с помощью команды python3 в lunux. Однако в файле я получаю только выходные данные самой программы, но не результат команды time , которая при выполнении непосредственно из оболочки в конце вывода программы печатает что-то вроде это:
real 0m0.813s
user 0m1.140s
sys 0m0.056s
И этот результат является наиболее важным для меня, так как я пытаюсь оценить время выполнения самого процесса.
Я даже не начинающий в Python, и это единственный код, с которым я имел дело раньше, поэтому я понятия не имею, в чем может быть причина, почему я не вижу результат time Команда в файле, который, я полагаю, должен быть выполнимым, и особенно, как решить эту проблему.
ОБНОВЛЕНИЕ: решается путем изменения следующей строки
result=check_output(shlex.split(command_to_execute), stderr=STDOUT, universal_newlines=True)