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
🇳🇱#PaesiBassi – Il partito liberal-progressista ed europeista #D66, primo partito alle ultime elezioni, ha raggiunto un accordo per formare un governo di minoranza con i democristiani del #CDA e il partito liberal-conservatore #VVD. La coalizione conta solo 66 seggi su 150 e dovrà quindi cercare appoggi esterni per passare ogni singola misura.
@UltimoraPolitics24
#PaesiBassi
L'ex deputata di #CDA|EPP Mona Keijzer è stata scelta come candidata Primo Ministro da #BBB|Centro-destra ruralista populista.
Keizer ha partecipato nell'ultimo governo #Rutte in qualità di Segretaria agli Affari Economici e le Politiche Climatiche.
@OsservatorioEsteri
🇳🇱#PaesiBassi – Nasce il governo di Rob #Jetten. Ex ministro dell’Energia, ha vinto le ultime elezioni con il suo partito liberal-progressista #D66, formando un governo di minoranza con il centrodestra #VVD e i democristiani del #CDA. A 38 anni è il più giovane premier della storia e il primo apertamente omosessuale a guidare il Paese.
@UltimoraPolitics24
#UE#Europa#PaesiBassi
Il governo ha nominato Wopke #Hoekstra (#CDA|EPP) come successore di Frans #Timmermans (#PvdA|S&D) nella carica di Commissario europeo per il clima e il Green Deal europeo.
@OsservatorioEsteri
#PaesiBassi🇳🇱
#Parlamentari
Exit poll di Ipsos I&O.
Distribuzione dei seggi.
🟩 Democratici 66 (#D66|RE): 27
⬛️ Partito per la Libertà (#PVV|PfE): 25
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 23
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 20
🟩 Appello Cristiano-Democratico (#CDA|PPE): 19
⬛️ Risposta Corretta 2021 (#JA21|ECR): 9
🟥 Forum per la Democrazia (#FvD|ESN): 6
🟩 Movimento Civico-Contadino (#BBB|PPE): 4
🟩 Partito per gli Animali (#PvdD|LEFT): 3
🟥 Partito Socialista (#SP|Sinistra): 3
🟦#DENK|Minoranze etniche: 3
Altri: 5
Maggioranza: 76
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati finali.
Distribuzione dei seggi.
🟩 Democratici 66 (#D66|RE): 26
⬛️ Partito per la Libertà (#PVV|PfE): 26
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 22
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 20
🟩 Appello Cristiano-Democratico (#CDA|PPE): 19
⬛️ Risposta Corretta 2021 (#JA21|ECR): 9
🟥 Forum per la Democrazia (#FvD|ESN): 7
🟩 Movimento Civico-Contadino (#BBB|PPE): 4
🟦#DENK|Minoranze etniche: 3
🟧 Partito Politico Riformato (#SGP|ECR): 3
🟩 Partito per gli Animali (#PvdD|LEFT): 3
Altri: 8
Maggioranza: 76
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati finali.
Voti scrutinati: 100%.
Affluenza finale: 78,4% (+0,05%).
🟩 Democratici 66 (#D66|RE): 16,9%
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 14,2%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 12,6%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 11,8%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 5,9%
🟥 Forum per la Democrazia (#FvD|ESN): 4,6%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,7%
🟦#DENK|Minoranze etniche: 2,4%
🟧 Partito Politico Riformato (#SGP|ECR): 2,3%
🟩 Partito per gli Animali (#PvdD|LEFT): 2,1%
Altri: 7,8%
@TuttoElezioni
#PaesiBassi🇳🇱
#Parlamentari
Risultati parziali.
Voti scrutinati: 98,6%.
🟩 Democratici 66 (#D66|RE): 16,7%
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 14,1%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 12,5%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 11,7%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 5,9%
🟥 Forum per la Democrazia (#FvD|ESN): 4,5%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,6%
🟦#DENK|Minoranze etniche: 2,4%
🟧 Partito Politico Riformato (#SGP|ECR): 2,3%
🟩 Partito per gli Animali (#PvdD|LEFT): 2,0%
Altri: 8,6%
@TuttoElezioni
#Sondaggi
#PaesiBassi🇳🇱
#Parlamentari
Sondaggio di Ipsos I&O.
Data: 23-24 ottobre 2025.
Campione: 2.745 persone.
⬛️ Partito per la Libertà (#PVV|PfE): 16,7%
🟥 Sinistra Verde - Partito del Lavoro (#GLPvdA|G/EFA|S&D): 15%
🟩 Democratici 66 (#D66|RE): 14,4%
🟩 Appello Cristiano-Democratico (#CDA|PPE): 12,6%
🟦 Partito Popolare per la Libertà e la Democrazia (#VVD|RE): 10,4%
⬛️ Risposta Corretta 2021 (#JA21|ECR): 7,7%
🟥 Forum per la Democrazia (#FvD|ESN): 3,6%
🟩 Partito per gli Animali (#PvdD|LEFT): 3,0%
🟥 Partito Socialista (#SP|Sinistra): 2,8%
🟩 Movimento Civico-Contadino (#BBB|PPE): 2,7%
🟧 Partito Politico Riformato (#SGP|ECR): 2,5%
🟦#DENK|Minoranze etniche: 2,4%
🟦 Unione Cristiana (#CU|Cristiano-democratici): 2,2%
🟪 Volt Paesi Bassi (#Volt|G/EFA): 2,2%
Altri: 1,8%
@TuttoElezioni