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
Ладно, уже только за это взаимодействие можно порекомендовать сообщество дизайнеров Ньюс в телеграме, которое организовал Женя Арутюнов с командой
Продающий лендос с манифестом и промокодами тут
Если что, это ребята, которые когда-то для Додо придумывали смищные фразочки и другие оч человечные взаимодейтсвия)
🎤Ссылки на утро — второй канал
⏲Устойчивый VPN за звезду
#interaction@cogload#copywriting@cogload
🪐 The galaxy Arp 273, located about 300 million light-years away in the constellation Andromeda, is an extraordinary pair of interacting galaxies twisted into a shape that looks like a cosmic rose. One galaxy’s gravity is pulling and warping the other’s spiral arms, creating elegant loops and arcs that reveal the dramatic effects of galactic encounters in deep space. ✨
#galaxies⚡#interaction⚡#astronomy⚡#nasa⚡#galaxy⚡#stars⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🌍 The geographic shell of the Earth is where the land, water, air, and life all meet and interact. This thin, dynamic layer makes our planet uniquely suited for life to thrive. ✨
#geography⚡#earthshell⚡#interaction⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🌍 In Japan, centuries-old forest areas called satoyama are shaped by human care for farming, wood, and water, blending wild nature and villages into landscapes rich in biodiversity and tradition. ✨
#interaction⚡#landscapes⚡#biodiversity⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In Indonesia, ancient forests and rice terraces share land with villages, blending wild and human-shaped environments. This mix supports rare wildlife while feeding local communities. ✨
#interaction⚡#landscapes⚡#sustainability⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 In the Swiss Alps, ancient irrigation channels called "bisses" direct mountain water through villages and fields. These hand-built waterways have shaped both local ecosystems and farming for centuries. ✨
#interaction⚡#society⚡#mountains⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels