Запуск зовнішніх додатків в Python
Для запуску будь-якої зовнішньої команди або програми під 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 ()