Решено: изпълнете системна команда

Последна актуализация: 09/11/2023

В днешния забързан свят автоматизацията и ефективността са от ключово значение за оставането пред кривата. Една такава област, в която автоматизацията играе решаваща роля, е изпълнението на системни команди чрез езици за програмиране като Python. Тази статия ще ви преведе през процеса на изпълнение на системни команди с помощта на Python, като се потопите в основния код и хвърлите светлина върху съответните библиотеки и функции.

Като начало, Python предлага няколко начина за изпълнение на системни команди. Една популярна опция е да използвате os библиотека, докато друг ефективен избор включва подпроцес модул. В тази статия ще се съсредоточим върху подпроцес модул, тъй като предоставя повече гъвкавост и контрол върху изпълнението на външни команди.

Модулът за подпроцес на Python

  • Модулът за подпроцеси на Python ви позволява да създавате нови процеси, да се свързвате с техните канали за вход/изход/грешка и да получавате техните кодове за връщане.
  • За да започнете с модула подпроцес, първо трябва да го импортирате със следната команда: import subprocess.

Сега, след като импортирахме модула на подпроцеса, нека проучим основната му функция: тичам (). Тази функция приема различни аргументи, най-основният от които е списък, указващ командата, която искате да изпълните, и всички необходими допълнителни аргументи.

Изпълнение на системни команди с подпроцес

Нека да разгледаме един пример. Ако искате да създадете нова директория, наречена „example_directory“, като използвате системната команда „mkdir“, трябва да изпълните следния код:

import subprocess

command = ["mkdir", "example_directory"]
result = subprocess.run(command)

В този пример, тичам () функцията приема списъка команда, който съдържа системната команда “mkdir” и аргумента за името на желаната директория. След това функцията връща a subprocess.CompletedProcess обект, съдържащ информация като кода за връщане и всеки изход или съобщения за грешка, генерирани от командата.

За повече контрол върху изпълнената команда могат да се подадат допълнителни аргументи към тичам () функция, като напр стандартния изход намлява STDERR. По подразбиране те са зададени на None, което означава, че изходът и съобщенията за грешка не се улавят. Въпреки това, настройката им да подпроцес.PIPE ви позволява да уловите тези съобщения за по-нататъшна обработка.

import subprocess

command = ["mkdir", "example_directory"]
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print(f"Output: {result.stdout}")
print(f"Error: {result.stderr}")
print(f"Return Code: {result.returncode}")

Полезни функции в модула Subprocess

В допълнение към тичам () функция, модулът на подпроцеса съдържа няколко други полезни функции, включително:

  • обади се(): Тази функция работи подобно на тичам (), но връща само кода за връщане на изпълнената команда.
  • check_call(): Подобен на обади се(), тази функция хвърля изключение CalledProcessError, ако командата върне различен от нула изходен код.
  • check_output(): Тази функция връща изхода на командата, но хвърля изключение CalledProcessError, ако командата върне ненулев код за изход.
  • отваряне(): Този клас предоставя по-разширена функционалност, включително възможността за взаимодействие с изпълнения процес чрез неговите входни, изходни и потоци от грешки.

Други библиотеки за изпълнение на системни команди

Освен подпроцес модул, има други налични библиотеки за изпълнение на системни команди в Python:

  • os: Модулът os също така предоставя средства за изпълнение на системни команди с помощта на функции като os.system() намлява os.popen(), но с по-малко гъвкавост и контрол в сравнение с модула на подпроцеса.
  • sh: Тази библиотека на трета страна предлага по-питоничен подход за изпълнение на системни команди, което позволява по-лесно взаимодействие с инструментите на командния ред.

В заключение, изпълнението на системни команди в Python е решаващо умение за автоматизация и ефективност. The подпроцес модулът се откроява като най-гъвкавата и мощна опция, предоставяща на потребителите много опции за изпълнение и контрол на външни команди. С това разбиране вече можете да впрегнете силата на Python, за да рационализирате процесите си и да увеличите производителността си.

Подобни публикации:

Оставете коментар