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
ОТКРЫЛИ САЙТ ЗНАКОМСТВ ПО R6SX 💕
📁 Угадываем оперативника по описанию;
🥹 Шакал? А может быть всё-таки Шакал?
😫 «Пусть в дом пенсионеров идёт» — Always
Случился мэтч или нет — узнай в новом ролике на наших каналах!
🎬YouTube | 🖥VK
#R6SX#GOGOVP
ТИР-ЛИСТ ОПЕРАТИВНИКОВ В HIGH STAKES🔥
❓ Пришли ли Медведи к общему мнению или нет?
😎 Ждём гайд отJoyStick на Denari;
🤔 Так в каком всё же тире Sens?
А полный ролик смотри на наших каналах!
🎬YouTube |🖥VK
#R6SX#GOGOVP
Артур «ShepparD» Ипатов, Данил «JoyStiCK» Габов, а также тренер команды по R6SX Евгений «karzheka» Петришин покидают наш клуб.
ShepparD и JoyStiCK представляли Virtus.рro с 2022 года и стали важной частью истории клуба в Rainbow Six, включая топ-3 на Six Invitational 2024 и 3-4 место на BLAST R6 Major Montreal 2024.
Евгений «karzheka» Петришин присоединился к VP в начале 2025 года. Под его руководством команда приняла участие в Six Invitational 2025, а также заняла 5–8 место на EWC 2025.
Мы искренне благодарим Артура, Данила и Евгения за вклад в развитие команды, профессионализм и все достижения, которых удалось добиться вместе! Желаем им успехов в дальнейшей карьере и новых спортивных побед ❤️
Обновлённый состав Virtus.рro по Rainbow Six Siege X будет представлен после завершения Six Invitational.
#R6SX#GOGOVP
ВИКТОРИНА С ИИ-БАБУШКАМИ 🤯
🥰dan-_- любитель котиков;
😳 Зачем бабушке трап на крыльцо?
😏 Как много подсказок понадобилось Медведям?
А полный ролик смотри на наших каналах!
🎬YouTube |🖥VK
#R6S#R6SX#GOGOVP
Смотрим обнову Operation High Stakes в R6SX вместе с Медведями 📁
😂 «JoyStiCK, ты патч читал? — Always
❓Scorpion vs FMG-9, что выберешь ты?
😏 Фишки от ShepparD на "дендурики"
Скорее смотри новый ролик на наших каналах 👇
🎬YouTube | 🖥VK
#R6SX#SiegeX#GOGOVP
Готовим для вас контент 😏
Медиа-день для наших Медведей из R6S прошел просто отлично! Снимаем много крутых кадров, чтобы вы смогли заглянуть за кулисы подготовки к будущим турнирам 🧡
#R6SX#SiegeX#GOGOVP
Кулинарная дуэль Медведей из Standoff 2 и R6SX
👨🍳
📁 Лайфхаки для самой сочной котлетки;
😈 Кто тут реальный огузок?
😋 А с киви-то неплохо вышло.
Смотри новый ролик на наших каналах и голосуй за следующее блюдо, которое должны приготовить наши парни!
🎬YouTube | 🖥VK
#Standoff2#R6SX#GOGOVP
🔥ПЕРВЫЙ ВЛОГ С ESPORTS WORLD CUP ПО R6SX 🔥
✍️ Хайлайты и разбор матчей с FEARX и DarkZero;
😱 Самые мемные и необычные названия на картах!
👀 Итоги групповой стадии от dan-_-.
Посмотреть влог можно на наших каналах
😊
🎬YouTube | 🎬 VK
#R6SX#EsportsWorldCup#EWC2025#EWC#GOGOVP