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
Jesse Derry was taken to hospital as a precaution following his first-half substitution during today’s #PL game against Nottingham Forest.
Jesse is conscious, talking and undergoing precautionary checks. We wish him a speedy recovery and thank the medical staff for their swift response.
Steve Holland:
“Our last game, Bournemouth to Leeds, is a #PL record, I think, in terms of time between games.
“So the gap has been as big as you can have really. I think we felt it was important to get the whole group together again, and really focus on finishing the season well.
“I think this is the PERFECT venue for that, really.”
Steve Holland:
“I think the language we should be using as this club is to finish as CLOSE as we possibly can to the top [this season].
“I don’t know how possible that is, but that has to be the challenge always: to get as close as we possibly CAN to the top...” [MU]
Bruno Fernandes on matching Cristiano Ronaldo’s #PL POTM record:
“It’s always good company. We know when records are there, his name will always be around.
“It’s a HUGE honour and privilege to be close to him.” 🇵🇹❤️
[THREAD]
There are multiple Premier League games on Saturday, Sunday AND Monday. 🍿
Here are some stats you might see in GW35...
#PL | @CopyBetUKhttps://t.co/RnveqOETlK
RT @Squawka: [THREAD]
There's five Premier League games on a Sunday for the first time in 2023. 🍿
Here are some stats you might see… 👀
#PL | @CopyBetUKhttps://t.co/sMqfA3FUuS