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
🐟На днях провели интересные тесты в демозале - нарезали на полуавтоматическом слайсере GSP HD охлажденную рыбу семейства лососевых.
Нам поступил запрос порезать слабосоленую (1% соли) рыбу на суши и роллы🍣
Честно признаемся, мы были сами впечатлены результатами теста!
ЗАДАЧА:
Толщина ломтика - 2-2,5 мм
Выход с куска - не менее 70%
РЕЗУЛЬТАТ:
100% попадание в ТЗ заказчика, красивый рез, стабильная толщина ломтика, рыба не расслаивается. Данное решение для заказчика означает стабильность результата и независимость от человеческого фактора, а значит и большая производительность с того же количества исходного продукта 👌🏼
#gsp#нарезка#слайсер
Давно не показывали на канале нарезку🔪
И сегодня предлагаем оценить результат нарезки рыбки🐟
Толщина нарезки - 2 мм
Автоматический слайсер GSP HD это:
• точная настройка толщины реза с шагом до 0,5 мм
• производительность до 90 резов в минуту
• работа в ручном и автоматическом режиме
• высочайший уровень гигиены
#нарезка#слайсер#bizerba#gsp
😁Unpredictable Stand-Up Attacks: High-Level Setups & Execution For Devastating Punches, Kicks By Georges St. Pierre😁
➡️Unlock the secrets to devastating stand-up striking with Georges St. Pierre, one of the greatest mixed martial artists of all time, in his groundbreaking instructional series, Unpredictable Stand-Up Attacks: High-Level Setups &Execution for Devastating Punches, Kicks.
➡️In this expertly crafted program, GSP—known for his mastery of strategy, timing, and versatility—breaks down the art of unpredictable striking and its application in both striking and MMA.
➡️Whether you’re a beginner looking to build a solid foundation or an advanced fighter aiming to sharpen your skills, GSP’s proven techniques will elevate your striking game to new heights
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Striking#UFC305
💁♀️Buy
💁♀️
😁Mastering Takedowns: All Tricks & Techniques For Unstoppable Takedowns By Georges St. Pierre😁
➡️Unlock the secrets to dominating takedowns with Mastering Takedowns: All Tricks &Techniques for Unstoppable Takedowns by Georges St-Pierre, one of the greatest martial artists of all time.
➡️Whether you’re a beginner looking to build a strong foundation or an advanced athlete refining your techniques, this instructional provides actionable strategies, drills, and tactics used by the best in the business
➡️Georges St-Pierre’s unique approach blends traditional grappling knowledge with modern MMA strategy, giving you the tools to control the fight from the moment the first punch is thrown.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Takedowns#MMA#UFC305
💁♀️Buy
💁♀️