обработка вывода команды времени в скрипте Python - PullRequest
1 голос
/ 07 февраля 2012

Я пытаюсь написать скрипт на python, который тестирует несколько частей кода.Проблема заключается в том, что при запуске сценария вывод идентификатора команды отличается от того, что я получил бы, я запускаю его непосредственно в командной строке bash.

Вот код для сценария python

import subprocess
import re
import os
app = os.getcwd() + "/" + "myapp"
testPopen = subprocess.Popen(args=['/usr/bin/time',app],
    stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=False) 
testPopen.wait()

Вот результат вышеприведенного кода

    real        1.0
    user        0.8
    sys         0.0

1 Ответ

2 голосов
/ 07 февраля 2012

Когда вы запускаете time myapp из командной строки bash, вы используете команду bash time .(Наберите help time, чтобы увидеть, что bash понимает его как команду bash.)

Когда вы запускаете скрипт на python, вы используете /usr/bin/time, который является другой программой .(Введите man time или which time, чтобы увидеть, что время также является программой. Как запутанно!)

Чтобы заставить скрипт python использовать команду bash time:

import shlex
testPopen = subprocess.Popen(shlex.split('bash -c "time {a}"'.format(a = app)),
    stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=False) 
out,err = testPopen.communicate()
print(err)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...