Есть ли в Python модуль для сценариев задач командной строки? - PullRequest
1 голос
/ 07 февраля 2012

Имеет ли Python модуль, адаптированный для сценариев задач командной строки?

Меня интересует то, что может выдавать команды, анализировать выходные данные, особенно в том, что касается успеха, неудачи или прогресса, и отправлять электронную почту в зависимости от результата.

Есть ли какой-то модуль, специально приспособленный для этого?

Ответы [ 4 ]

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

Попробуйте модуль subprocess.

http://docs.python.org/library/subprocess.html

2 голосов
/ 07 февраля 2012
Подпроцесс

хорош и находится в стандартной библиотеке. Существуют и другие внешние модули, которые могут радовать взаимодействие с задачами командной строки.

  • pbs первым для самых инновационных API.
  • shellout приходит через секунду.
1 голос
/ 07 февраля 2012

Похоже, что он может делать то, что вы хотите: https://github.com/amoffat/pbs

В документации на странице GitHub есть несколько хороших примеров. Кроме того, я еще не использовал это, но прочитал от других людей онлайн, что им действительно нравится это и считают это превосходящим подпроцесс (по любой причине)

Приветствие.

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

Фрагмент с использованием модулей suprocess и shlex:

def runcommand(command):
    args = shlex.split(command)
    p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    (stdoutdata, stderrdata) = p.communicate()
    return (stdoutdata, stderrdata, p.returncode)

(outdata, errdata, returncode) = runcommand('/bin/ls -hl /tmp')

outlines = outdata.splitlines()
errlines = errdata.splitlines()

Для отправки почты в документации библиотеки есть хорошие примеры .

Обратите внимание, что communicate() будет ожидать завершения процесса.Для progress просто получите доступ к Popen pid и потокам , напрямую объединенным с poll() или wait().

...