мая 28
Появилась у меня потребность запустить внешнюю программу из питона. Некоторое время порыскал в документации в поисках чего-нибудь, похожего на обратные кавычки, пока не наткнулся на модуль subprocess. Там даны следующие примеры, касающиеся, моего случая:
Замена обратных кавычек (output=`mycmd myarg`):
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
Замена пайпов (output=`dmesg | grep hda`):
p1 = Popen(["dmesg"], stdout=PIPE) p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) output = p2.communicate()[0]
Замена os.system() (sts = os.system(«mycmd» + » myarg»)), которая мне не подходила, потому что она не возвращает вывод программы, а передает его на стадартный вывод:
p = Popen("mycmd" + " myarg", shell=True)
sts = os.waitpid(p.pid, 0)
В общем, RTFM. Утром, в обед и вечером.


Свежие комментарии