Для запуска любой внешней команды или программы под python используется os.system("path/to/program")
Например:
import os os.system('/usr/bin/firefox')
Выше приведенный пример здорово работает если только в пути нету пробелов (например, ‘Mozilla Firefox’).
Для того, что бы командная оболочка правильно трактовала имена с пробелами необходимо их экранировать в кавычки, например так:
import os os.system(r'c:/"Program Files"/"Mozilla Firefox"/firefox.exe')
Если не знать как правильно передать путь в os.system то можно долго провозится, ломая голову почему оно не хочет запускать программы.
Для упрощения запуска команд, в пути которых есть пробелы, существует os.startfile:
import os os.startfile(r'c:/Program Files/Mozilla Firefox/firefox.exe')
os.startfile принимает простой текст, без необходимости заключать в кавычки имена папок с пробелами.
Еще два варианта (источник), каждый хорош в своем случаи
import subprocess import shlex cmd = 'ls -al' args = shlex.split(cmd) p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) result = p.communicate()[0]
или
import commands commands.getoutput('ls -la')
Начиная с версии 3 и выше запуск рекомендуется производить через subprocess.
import subprocess proc = subprocess.Popen("ping -c2 %s" % ip, shell=True, stdout=subprocess.PIPE) out = proc.stdout.readlines() # или out = proc.communicate()