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
[WEVERSE DM] | 260511
🐧: I’ll leave a goodnight voice message
🐧: I’m leaving one after a long time
🐧: It’s kinda embarrassing listening to my own voice
🐧: Hehe ☺️
🐧🔈 Goodnight MOA ♡
#투모로우바이투게더#TOMORROW_X_TOGETHER#HUENINGKAI
[WEVERSE DM] | 260511
🐧: Pictures I took during Countless Friends
🐧: Both the episodes so far have been successful
🐧: (cute tone) I’ve been in touch with both of them
#투모로우바이투게더#TOMORROW_X_TOGETHER#HUENINGKAI
[WEVERSE DM] | 260508
🐧: 🎁
🐧: A present hehe
🐧: Ah this isn’t right now haha
🐧: It’s an old selfie
🐧: When I was on stand by during the shoot
🐧: That’s right that’s right, during ‘Countless Friends’
#투모로우바이투게더#TOMORROW_X_TOGETHER#HUENINGKAI
[WEVERSE DM] | 260419
🐧: For real
🐧: Out of the 4 days
🐧: I think today’s outfit & hair was the best
🐧: (cute tone) it was really pretty
#투모로우바이투게더#TOMORROW_X_TOGETHER#HUENINGKAI
[WEVERSE DM] | 260318
🐧: Yup I went on a short trip
🐧: I stopped by the pokémon center and bought morr (*typo for ‘more’) plushies lol
🐧: So cute, right?
🐧: These are the friends I bought this time
🐧: As expected I guess I can’t help myself
🐧: Every time I look at plushies, it makes me happy
🐧: I’m going to try playing pokopia
🐧: Because it kinda looks fun
🐧: I should try decorating the houses
🐧: And things like that hehe apparently it’s a healing game
#투모로우바이투게더#TOMORROW_X_TOGETHER#HUENINGKAI