Запуск зовнішніх додатків в Python

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