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
🔠
🔠
🔠
🔠
🔠
🔠В новом году мы с вами еще не виделись, давайте исправлять!
У нас есть для вас 3 квеста!
1 - дожить до субботы, 2 и 3 - поволонтёрить на полезных мероприятиях
С утра в субботу предлагаем поучаствовать в подготовке компостных ям-траншей и прилегающей территории к последующему приему органики в Ботсаду, а днём в Ковчеге поиграть в сортировку крышечек по цветам на скорость!* И там, и там пригодится помощь 7-10 волонтёров
♻
* Мы вместе собрали очень много крышечек от пластиковых бутылоки теперь хотим сделать из этих крышечек красивую мозаику (#reuse) в одной из армянских школ. Дизайн мозаики разработает известный художник Арман Степанян. Для реализации нам необходимо рассортировать собранные крышечки по цвету
Ждем вас 21 января на одном или сразу двух мероприятиях!
🕚 11:00
📍 Ботанический сад, центральный вход, ул. Грачья Ачаряна
🛠 задачи: обрезка кустарников, перенос камней, уборка мусора
🕒 15:00
📍 ресурсный центр Ковчега, ул. Павстоса Бузанда 1/3
🛠 задача: сортировка пластиковых крышечек по цветам
Также просимподдержать нас, отправив пожертвование на комфортную сумму сюда
➡️
➡️
➡️
5471280030147752 (Ардшинбанк)
IVAN DIVILKOVSKIY
2200700168433976 (Тинькофф)
As we prepare for Christmas, let's transform and reuse our old decor for a fresh festive look.
Instead of buying new decorations, wrapping paper and cards, we can:
🎄 Paint a fresh coat on old ornaments
🎁 Reuse empty food jars or cookie tin cans as gift boxes
📱 Swap Christmas paper cards for heartfelt e-greetings
How are you getting creative with upcycling and recycling this Christmas? Share your tips in the comments below.
#TowardsZeroWaste#3Rs#Reduce#Reuse#Recycle
Our 2023 Wrapped is in!
'Bringing Your Reusable Bag for Shopping' is the chart-topping single we all need.
From reusable essentials to recycling mastery, we've built an eco-habit playlist that's pure chart green. Top tracks include 'Reusable Bag Groove', 'Recycling Rhythm', and 'Energy-Saving Melody'.
Fellow eco-warriors, let’s keep this #SustainableSG chart-topper habit going strong!
#TowardsZeroWaste#BYOB#BringYourOwnBag#BringYourOwn#BYO#3Rs#Reduce#Reuse#Recycle#EnergyEfficiency
Что это такое своп и шеринг группы («swap» и “sharing” в переводе с англ. “обмен”) ?
⠀
🍀это обмен ненужными, но хорошими вещами. Свопы проходят в виде фримаркета: вы приносите ненужную вам вещь, а забирайте нужную или вовсе ничего не забираете. Главный принцип свопа — никаких денег #nomoney
🍀 можно делиться информацией о ненужных вещах и договариваться об обмене в шеринг-группах или чатах в соцсетях.
⠀
⠀
🍀🍀🍀
#foodsharing#sharing#sobirator#собиратор#собиратормосква#своп#swap#свопмосква#обмен#медшеринг#шеринг#отдамдаром#отдамдароммосква#reuse#реюз#зоошеринг#zoosharing