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
#SayYesToWasteLess by bringing our own clean containers and saying no to disposables. Every little action, even if seemingly insignificant, can have an impact on our Earth. Learn more about what climate actions you can take here: www.mewr.gov.sg/climateaction#BringYourOwn
Getting busy this holiday season? Don’t forget to keep your habits sustainable! Bring your tote for shopping, your lunchbox & cutlery for takeaway meals, and reusable plates for gatherings.
#BringYourOwn#TowardsZeroWaste#SayYEStoWasteLess
Heading out to tabao your next meal? Don’t forget to #BringYourOwn reusables! Let’s #SupportOurHawkers and reduce waste by bringing our own containers 😊
Ready for takeaway feasts?
This holiday season, let's switch to reusable containers and cut down on disposables!
#SayYEStoWasteLess#TowardsZeroWaste#BringYourOwn#BYO
It’s always good to pack reusable containers in your bag because you never know when cravings may strike! #BringYourOwn😊
Have other ideas on zero waste? Share it on social media this #YED2020, so that we can motivate more people to move #TowardsZeroWaste! www.cgs.gov.sg/yed
Santa’s not the only one with a reusable bag!
When visiting the mall to shop, let’s bring our reusable bags. Together, we can ensure fa-la-la-la-la, la-la-la-less packaging waste. 🛍️
#SayYEStoWasteLess#TowardsZeroWaste#BringYourOwn#BYO#BYOB
Only sit on seats without markings when dining in at #OurHawkerCentres to maintain #SafeDistancing. If the seating capacity is limited, #BringYourOwn clean containers and choose to take-out instead. Let’s unite to #FightCOVID19 together! 💪#SGUnited
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