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
💥Triumph Scrambler 900 — классика с внедорожным характером
✏️ Британский мотоцикл Triumph Scrambler 900 сочетает в себе ретро-стиль и современные технологии, оставаясь верным духу оригинальных «скамблеров» 1960-х.
✔️ Дизайн и атмосфера
С его высоко расположенной выхлопной трубой, внедорожными шинами и минималистичным дизайном Scrambler 900 выглядит так, будто сошел со страниц мотоистории. Однако под капотом — современный 900-кубовый параллельный твин с воздушно-масляным охлаждением, выдающий 64 л.с. и 80 Нм крутящего момента.
✔️ Ездовые характеристики
Двигатель обеспечивает плавную подачу мощности, идеальную для городских поездок и легкого бездорожья. Длинноходная подвеска и легкая рама делают мотоцикл управляемым даже на грунтовых дорогах, а ABS и система traction control добавляют безопасности.
✔️ Для кого этот байк?
Scrambler 900 — отличный выбор для тех, кто ценит классическую эстетику, но не хочет жертвовать надежностью. Это мотоцикл для повседневных поездок, воскресных приключений и тех, кто любит выделяться из толпы.
Хотите почувствовать дух свободы? Triumph Scrambler 900 готов к любым дорогам!
#Triumph#Scrambler#Мотоциклы
💥 Взгляд в будущее: дебютировал новый Triumph Speed Twin 1200 Cafe Racer Edition 2027 модельного года‼️
✏️ Энтузиастам классических мотоциклов на заметку! Только что произошла утечка первых изображений и информации о будущей новинке — Triumph Speed Twin 1200 Cafe Racer Edition 2027 года.
Это не просто обновление, а специальная, ориентированная на стиль версия популярного «спидтвина», которая отдает дань уважения золотой эре кастомной культуры.
✔️ Что мы видим на фото?
· Чистая эстетика кафе-рейсера: Мотоцикл получил эффектный полуобтекатель на передней фаре, который мгновенно меняет его характер, делая более агрессивным и стремительным.
· Новая цветовая схема: На изображениях представлена комбинация «Карбоновый черный» с контрастными полосами и графикой в красно-оранжевых тонах — очень динамично и современно.
· Элементы в стиле рейсинг: Обратите внимание на цифровую белую круговую шкалу на спидометре, которая напоминает классические тахометры гоночных машин. Также видны новые кожухи амортизаторов и профилированное сиденье, завершающие образ.
⚙️ Что под капотом (ожидаемое)?
Хотя это «первый взгляд», а не официальный анонс, логично предположить, что в основе будет лежать знаменитый 1200-кубовый параллельный twin High Power от современного Speed Twin. Это означает примерно 100 лошадиных сил, обильный крутящий момент и современную электронику. Скорее всего, эта версия получит более спортивную настройку подвески и, возможно, более низкий руль для аутентичной посадки кафе-рейсера.
➡️ Ожидайте официальных деталей и спецификаций ближе к концу 2026 года. А пока — делитесь мнением в комментариях! Ждете такую версию? Как вам дизайн?
#Triumph#SpeedTwin#CafeRacer#NewBike#FirstLook#MotorcycleNews#FutureModel#2027ModelYear#ClassicBike#ModernClassic#Мотоцикл#Триумф#КафеРейсер#НоваяМодель