Запустите конвейеры команд с подпроцессом. Открыть - PullRequest
4 голосов
/ 31 октября 2009

Как выполнить следующую команду, используя subprocess.Popen?

mysqldump database_name table_name | bzip2 > filename

Я знаю, os.system() может выполнить эту работу, но я не хочу ждать завершения дампа в основной программе.

1 Ответ

6 голосов
/ 31 октября 2009

Вы хотите, чтобы опция shell=True заставляла его выполнять команды оболочки:

import subprocess
subprocess.Popen("sleep 4s && echo right thar, right thar",shell=True);
print 'i like it when you put it'

, что дает:

 I like it when you put it
 [4 seconds later]
 right thar, right thar
...