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
L’Ucraina si trova a fare i conti con la situazione peggiore della sua storia post-sovietica. In tale contesto la popolarità dell’ex comico Zelenskij è ai minimi dalla sua elezione alla presidenza: la sua presa sulla struttura istituzionale traballa insieme al precario equilibrio del paese, quantomai instabile.
La mia analisi per l'Atlante geopolitico di Treccani.
#ucraina#europa#russia#mondo
https://www.treccani.it/magazine/atlante/geopolitica/Zelenskij_indebolito.html
A Kiev (Ucraina) si è svolta una manifestazione - autorizzata dalle autorità locali e quindi perfettamente legale - per commemorare la divisione “Galizia”, la formazione delle SS in cui erano inquadrati i collaborazionisti ucraini durante l'operazione Barbarossa e l'occupazione nazista dell'Ucraina.
Se una percentuale, anche piccola, degli esponenti politici italiani che non più tardi di cinque giorni fa hanno commentato a vario titolo l'anniversario del 25 aprile volesse prenderne coscienza e spendere una parola a riguardo, questo potrebbe giovare alla loro credibilità, ma soprattutto risultare un poco più rispettoso nei confronti della storia del nostro paese.
#italia#ucraina#mondo#europa
Uno scorcio del confine tra Armenia ed Iran: il territorio iraniano comincia appena oltre il fiume che scorre sotto la strada. Sul lato opposto di questa, quello che resta della vecchia ferrovia che in epoca sovietica collegava la regione del Nakhcivan all'Azerbaijan attraversando la punta meridionale dell'Armenia.
#armenia#caucaso#europa#asia#mondo
Sulle alture rocciose di Meghri, villaggio nella punta meridionale dell'Armenia. Sullo sfondo, già oltreconfine, le montagne dell'Iran settentrionale.
#armenia#caucaso#europa#asia#mondo