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
🔺Xullas, 2024-yil kirib keldi, siz o'z vadalaringgiz va maqsadlaringgizni esdan chiqarmadinggizmi?
🔺Agar esdan chiqarmagan bo'lsanggiz izohlarga oldinggizga qanday maqsadlar qo'yganggizni yozib qo'ying, ha aytgancha ularni bajarish uchun birinchi qadamni qo'ydingizmi...
🗣️#maqsad
2025-yilga maqsadlar > Tub burilish
Maqsad kishini olgʻa intilishiga sabab boʻlishi mumkin, agar unda shijoat va maqsad sari harakat qilsa... 2024-yil boshida oʻylagan, baʼzilarini yozgan maqsadlarimga deyarli yetdim. Menimcha erisha olmagan maqsadlarim yoʻq ekanki, uni eslay olmadim...
Chet tillari oʻrganish boʻyicha ham 6-7 oycha oʻqib, toʻxtatib qoʻydim, ishlar bilan boʻlib, kelgusi yilda chet tillariga koʻproq eʼtibor qaratishim ham mumkin.
Hozircha aniq maqsad qoʻyib olishga shoshilmayapman. Balki, toʻliq biznesga oʻtib ketishim, dizaynni tark etishim ham mumkin. Doimo hayotimda tub burilishlar qilib kelganman va bundan afsuslanmayman)
Tub burilishlar sababli topganlarim ham koʻp boʻldi. Yaʼniki yuqori masʼuliyatli loyihalarni ishonib topshirishdi. Masʼuliyatni boʻynimga oldim! Ancha qiynab ham qoʻydim oʻzimni, stressga tushdim, orada sogʻliqda muammolar boʻlib, shifoxonaga ham tushib chiqdim...
Xullas, ishonib topshirilgan vazifaga qay holatda boʻlsa ham, ishlab berdim. Toʻgʻrisini aytganda, masʼuliyati ancha ogʻir ekan, sababi dizayndan tashqari katta masʼuliyatlarni ham boʻynimga olgan edim... Qisqasi, 2024-yil karyeram uchun ajoyib yil boʻldi desam ham boʻladi.
2025-yilda hayotimda yana ham katta oʻzgarishlar qilishga harakat qilaman, nasib boʻlsa)
@suxrobblog — #maqsad#tub_burilish
#yuksalish#maqsad#natija
⚡Bugun shogirdim Boymurod Yunusov bilan yangi dizayn o'rgandik, o'ziga yarasha mehnati bor, lekin tushungan odam zavqlanib ishlaydi.
@ik_design👈👉@isakovxusniddin
💰 Orzu kutiladi.
Maqsad esa har kuni tanlanadi.
Agar bugun charchagan bo‘lsang ham,
agar hozir natija ko‘rinmayotgan bo‘lsa ham —
to‘xtama.🌟
🌟 Chunki maqsadga yetadiganlar
eng tez yurganlar emas,
eng bardoshli bo‘lganlardir.
Bugun o‘zingdan voz kechma.
Ertangi sen buning uchun rahmat aytadi. 🌟
#Maqsad#Intizom#Doimiylik#Osish#AyollarUchun
🌟@Milliarderlarim