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
Embajador Sergey Mélik-Bagdasárov:
💬 El 23 de febrero se celebra en #Rusia el Día del Defensor de la #Patria!
🤝 Felicito a todos los que están aportando a la lucha por Patria, por la #paz y la #libertad!
🙏Los agradecemos sus esfuerzos dedicación y valentía!
Ecuador Liga Pro🇪🇨
2026-05-15 21:30 UTC (in 2h 4m)
LDU de Quito vs. Tecnico Universitario
Predicted outcome: LDU de Quito
Predicted score: 2:1
#LDUdeQuito#TecnicoUniversitario
2026-05-16 00:00 UTC (in 4h 34m)
Libertad vs. Deportivo Cuenca
Predicted outcome: Libertad
Predicted score: 2:1
#Libertad#DeportivoCuenca
#Football#EcuadorLigaPro
Ecuador Liga Pro🇪🇨
2026-05-01 21:30 UTC
Universidad Catolica vs. Independiente del Valle
Predicted outcome: Universidad Catolica❌
Predicted score: 2:1
Actual: Independiente del Valle 2:3
#UniversidadCatolica#IndependientedelValle
2026-05-02 00:00 UTC
Libertad vs. Aucas
Predicted outcome: Aucas❌
Predicted score: 1:2
Actual: Libertad 3:2
#Libertad#Aucas
#Football#EcuadorLigaPro
Ecuador Liga Pro🇪🇨
2026-04-21 22:00 UTC
Libertad vs. Guayaquil City FC
Predicted outcome: Libertad❌
Predicted score: 1:0
Actual: Guayaquil City FC 0:1
#Libertad#GuayaquilCityFC
2026-04-22 00:30 UTC
Tecnico Universitario vs. Emelec
Predicted outcome: Tecnico Universitario❌
Predicted score: 1:0
Actual: Emelec 0:1
#TecnicoUniversitario#Emelec
#Football#EcuadorLigaPro
Ecuador Liga Pro🇪🇨
2026-04-26 18:00 UTC
Macara vs. Libertad
Predicted outcome: Macara✅
Predicted score: 2:1
Actual: Macara 3:0
#Macara#Libertad
2026-04-26 20:30 UTC
Guayaquil City FC vs. Tecnico Universitario
Predicted outcome: Guayaquil City FC✅
Predicted score: 2:1
Actual: Guayaquil City FC 1:0
#GuayaquilCityFC#TecnicoUniversitario
2026-04-26 23:10 UTC
Orense SC vs. Barcelona SC
Predicted outcome: Barcelona SC❌
Predicted score: 1:2
Actual: Draw 1:1
#OrenseSC#BarcelonaSC
#Football#EcuadorLigaPro