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
#diqqat#hemis#talaba#YAN
❗️Barcha professor-o’qituvchilar va talabalar diqqatiga!
✅ HEMIS AT tizimining oʻqituvchi profilidagi “Yakuniy nazorat” va “Boshqa nazoratlar” menyularidagi “Reyting qaydnomalari”da oʻzgarishlar boʻlishi kutilmoqda.
⚠️ Tizimning endigi chiqariladigan yangi versiyasida (1.4.5) Reyting qaydnomasiga fan boʻyicha talabalarning oʻzlashtirish baholarini bir marta kiritib saqlash masalasi joriy qilinmoqda. Yaʼni bitta qaydnoma bir marta toʻliq toʻldirilib, bir marta saqlanishi mumkin.
🙏 Shuning uchun professor-oʻqituvchilar talabalarning YAN topshiriqlarini toʻliq baholab, barcha talabalar toʻgʻri baholanganiga ishonch hosil qilib keyin tizimning reyting qaydnomasiga kiritishini soʻraymiz.
✅ Talabalardan esa YANgacha bo’lgan barcha nazoratlardan belgilangan baholarni o’zlashtirish hamda YANga o’z vaqtida va tegishli talablarni bajargan holda kirishlari so’raladi.
☄️ Tizimga baholarni kiritish reglament boʻyicha 5 kun ichida faqat bir marta amalga oshirilishi mumkin. Baholar kiritilib saqlangandan soʻng reyting qaydnomasi toʻliq yopiladi. Yopilgan reyting qaydnomasiga qoʻshimcha kiritish va oʻzgartirishlarga ruxsat berilmaydi.
➡️ Barcha professor-oʻqituvchilar va talabalarga yetkazing.
👨💻Ps: qoʻshimcha savol, muammo va takliflar boʻyicha @registratorofis_botga murojaat qilishingiz mumkin.
✈️TerDU Registrator ofisi