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
📢 Russian military spokesperson claims victory over Ukrainian forces on the Southern Donetsk front. Enemy rotation disrupted, personnel and equipment destroyed. Counter-battery strikes hit enemy positions. Significant losses reported. The conflict in Ukraine remains unresolved. #WarUpdates
https://www.gazeta.ru/army/news/2023/11/05/21644377.shtml
Subscribe to @BadVolfNews
📢 Russian forces strike Ukrainian military targets! Over 160 hits on Krasnolimansk direction. Artillery units neutralized, assault squads defeated. Support from air and artillery. Command and observation posts attacked. New tactics observed by Ukrainian forces. #WarUpdates
https://www.gazeta.ru/army/news/2023/11/02/21625465.shtml
Subscribe to @BadVolfNews
📣 Russian troops seize Ukrainian stronghold near Ugledar in Donetsk People's Republic. 10 enemy soldiers caught off guard, 4 taken captive. Clever tactics employed, with one group approaching from the front and another from the rear. Victory for Russian forces! 💪🇷🇺#WarUpdates
https://www.gazeta.ru/army/news/2023/11/01/21617965.shtml
Subscribe to @BadVolfNews
📢 Russian forces gaining ground, Ukraine struggling to hold on. White House speculates Russia will secure tactical victories, cementing their dominance by spring. Crisis of conscription and dwindling weapon supplies weaken Ukraine's chances. Advisor warns Ukraine may not last till spring. Russian military holds the offensive initiative, pushing forward with success. Ukrainian strongholds predicted to fall, leading to a domino effect as the enemy flees. Official admits futility of fighting, claims US and Europe have abandoned Ukraine. US identifies major threats to Ukrainian Armed Forces. #WarUpdates#Ukraine#Russia
https://www.gazeta.ru/army/news/2023/10/28/21595081.shtml
Subscribe to @BadVolfNews
Ukraine’s paratroopers clear Berezove in Dnipropetrovsk Oblast, completing near-total reversal of Russia’s 2025 gains in the region
[Read FullArticle]
@WorldNews#UkraineNews#WarUpdates#DnipropetrovskIf
@syrianaanalysis breaks down Israel's strikes on Syria with Red Pilled, exploring how regional tensions are escalating and what it means for the axis of resistance.
#Israel#Syria#Hezbollah#MiddleEast#Gaza#WarUpdates#PoliticalAnalysis