#python #subprocess
#python #подпроцесс
Вопрос:
Я пытаюсь создать небольшой скрипт для проведения некоторого сравнительного анализа для меня. Я использую subprocess.Popen
для выполнения команды time. Пример кода:
import subprocess
import shlex
command = shlex.split("time thing_im_benchmarking")
p = subprocess.Popen(command)
p.wait()
Результат, который я получаю, это
2.58пользователь 0.04system 0:02.83 прошло 92%CPU (0avgtext 0avgdata 11568maxresident)k 0inputs 0outputs (0major 791 minor)pagefaults 0swaps
Чего я действительно хотел, так это
real 0m3.048s
user 0m2.784s
sys 0m0.040s
Как мне заставить Popen выполнить встроенную команду bash?
Ответ №1:
Передайте shell=True
в subprocess.Popen()
Ответ №2:
Я знаю, что это немного поздно, но способ получить стандартизированный вывод для временной программы — использовать флаг -p . Это даст вам вывод времени в соответствии со стандартом POSIX 2. Это мне очень помогло, когда я попытался оценить свои тайминги, используя программу, автоматически собирающую их.