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
🚀 THE GUCARD CHAMPIONS’ LEAGUE BEGINS! 🔼
GuCard is officially LIVE for our first whitelist users! 🎉 Congratulations to those who are among the first to experience the future of payments!
Now it’s time to show the world how GuCard works in real life! 🌍💵
🎥 How to Join:
1️⃣Create a video showcasing how you use your GuCard in everyday transactions.
2️⃣ Post it on X and tag @Gumart__.
3️⃣ Use #GuCard to spread the word!
🏆 BIG PRIZES (Top 3 Winners): $5,000in total (loaded directly onto your GuCard!)
🗓Contest period:Feb 16 – Feb 28
Be creative, be bold, and let’s show the world the power of GuCard! 💳
📦 GUCARD CHAMPIONSHIP EXTENDED – MORE TIME, MORE REWARDS! ⚡️
Due to the incredible response, we’re extending the GuCard Champions League until March 22! ✨
That means more chances to win BIG while showcasing how you use GuCard in real life!
🎥 How to Join:
1️⃣ Create a video showing how you use your GuCard for everyday payments.
2️⃣ Post it on X and tag @Gumart_Official.
3️⃣ Use #GuCard to spread the word!
🏆 BIG PRIZES – NOW EXTENDED!
💰 Top 3 Winners: $5,000 in total (loaded directly onto your GuCard!)
🗓 New Deadline: March 22
More time, more winners, and even more ways to showcase GuCard’s power! 💳
#GuMinigame
✨🥳 GUCARD CREATIVE CONTEST IS HERE! 🥳✨
Are you ready to show off your creativity and love for Gumart? 💸 Join the Gucard Creative Contest and turn your ideas into amazing content! 🎥🖌
👍 How to Join:
1️⃣ Create unique content (video, photo, meme, or text) featuring Gucard or Gumart.
2️⃣ Post it on X or YouTube with the hashtag #Gucard#Gumart
🏆Prizes Await You:
🎖Main Prizes:
1st Place: 1,000 USDT (1 winner)
2nd Place: $500 USDT (3 winners)
3rd Place: $50 USDT (5 winners)
🌟 Community Choice Awards:
50 winners: $10 each (based on community engagement).
💳 Special Bonus: All winners will receive a free Gucard!
🗓Timeline:
🕐 Start: January 5, 2025
⏳ End: January 19, 2025
🔥 Criteria for Winning: Creativity, quality, and interaction - bring your A-game!
#GuMinigame
🥉 GuCard Champions' League – Third Place Revealed!🛍
After NYC and Korea, we now head to the Philippines!
Big congratulations to @mkddavidson, our 3rd Place Winner, who showed how easy it is to grab snacks at the supermarket or order McDonald’s - all using GuCard and GTP. 👍
You’ve won 1,000 USDT, already loaded to your GuCard!
🎥 Watch the winning video: link
GuCard is going global - and this is just the beginning!✋
#GuMinigame#GuPay#GuGoGlobal#GuCard