Python + bash
Если вам часто требуется запускать shell команды из Python-кода, какой способ вы используете?
Самый низкоуровневый это функция os.system(), либо os.popen(). Рекомендованный способ это subprocess.call(). Но это всё еще достаточно неудобно.
Советую обратить своё внимание на очень крутую библиотеку sh.
Что она умеет?
🔸 удобный синтаксис вызова команд как функций
# os
import os
os.system("tar cvf demo.tar ~/")
# subprocess
import subprocess
subprocess.call(['tar', 'cvf', 'demo.tar', '~/'])
# sh
import sh
sh.tar('cvf', 'demo.tar', "~/")
🔸 простое создание функции-алиаса для длинной команды
fn = sh.lsof.bake('-i', '-P', '-n')
output = sh.grep(fn(), 'LISTEN')
в этом примере также задействован пайпинг
🔸 удобный вызов команд от sudo
with sh.contrib.sudo:
print(ls("/root"))
Такой запрос спросит пароль. Чтобы это работало нужно соответствующим способом настроить юзера.
А вот вариант с вводом пароля через код.
password = "secret"
sudo = sh.sudo.bake("-S", _in=password+"\n")
print(sudo.ls("/root"))
Это не все фишки. Больше интересных примеров смотрите в документации.
Специально для Windows💀 юзеров
#libs#linux
O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyevning Belgiyaga rasmiy tashrifi yakunlandi, davlatimiz rahbari Toshkent shahriga jo‘nab ketdi.
—
Официальный визит Президента Республики Узбекистан Шавката Мирзиёева в Бельгию завершился, глава нашего государства отбыл в город Ташкент.
#Mirziyoyev#tashrif#Belgiya
Prezident.uz|Facebook|Instagram|YouTube|X
O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyevning Belgiyaga rasmiy tashrifi yakunlandi, davlatimiz rahbari Toshkent shahriga jo‘nab ketdi.
—
Официальный визит Президента Республики Узбекистан Шавката Мирзиёева в Бельгию завершился, глава нашего государства отбыл в город Ташкент.
#Mirziyoyev#tashrif#Belgiya
Prezident.uz|Facebook|Instagram|YouTube|X
Bryussel shahriga rasmiy tashrif doirasida Laken saroyida O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyevning Belgiyaliklar Qiroli Filipp bilan uchrashuvi bo‘lib o‘tdi.
—
В рамках официального визита в Брюссель во дворце Лакен состоялась встреча Президента Республики Узбекистан Шавката Мирзиёева с Королем бельгийцев Филиппом.
#Mirziyoyev#uchrashuv#Belgiya#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
Bryussel shahriga rasmiy tashrif doirasida Laken saroyida O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyevning Belgiyaliklar Qiroli Filipp bilan uchrashuvi bo‘lib o‘tdi.
—
В рамках официального визита в Брюссель во дворце Лакен состоялась встреча Президента Республики Узбекистан Шавката Мирзиёева с Королем бельгийцев Филиппом.
#Mirziyoyev#uchrashuv#Belgiya#hamkorlik
Prezident.uz|Facebook|Instagram|YouTube|X
O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyev rasmiy tashrif bilan Bryussel shahriga keldi. Davlatimiz rahbarini Yevropa Ittifoqining Markaziy Osiyo bo‘yicha maxsus vakili Eduards Stiprays va boshqa rasmiy shaxslar kutib oldi.
—
Президент Республики Узбекистан Шавкат Мирзиёев прибыл с официальным визитом в город Брюссель. Главу нашего государства встретили спецпредставитель Европейского Союза по Центральной Азии Эдуардс Стипрайс и другие официальные лица.
#Mirziyoyev#tashrif#YI#Belgiya
Prezident.uz|Facebook|Instagram|YouTube|X
O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyev Yevropa kengashi Prezidenti Antoniu Koshta va Yevropa komissiyasi Prezidenti Ursula fon der Lyayenning taklifiga binoan rasmiy tashrif bilan Bryussel shahriga jo‘nab ketdi.
—
Президент Республики Узбекистан Шавкат Мирзиёев по приглашению Президента Европейского совета Антониу Кошты и Президента Европейской комиссии Урсулы фон дер Ляйен отбыл с официальным визитом в город Брюссель.
#Mirziyoyev#tashrif#YI#Belgiya
Prezident.uz|Facebook|Instagram|YouTube|X
O‘zbekiston Respublikasi Prezidenti Shavkat Mirziyoyev rasmiy tashrif bilan Bryussel shahriga keldi. Davlatimiz rahbarini Yevropa Ittifoqining Markaziy Osiyo bo‘yicha maxsus vakili Eduards Stiprays va boshqa rasmiy shaxslar kutib oldi.
—
Президент Республики Узбекистан Шавкат Мирзиёев прибыл с официальным визитом в город Брюссель. Главу нашего государства встретили спецпредставитель Европейского Союза по Центральной Азии Эдуардс Стипрайс и другие официальные лица.
#Mirziyoyev#tashrif#YI#Belgiya
Prezident.uz|Facebook|Instagram|YouTube|X