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
#ATA/USDT analysis :
#ATA is currently finding support above the 200-period exponential moving average (200 EMA) within the support zone. The price is anticipated to test this zone and maintain its bullish momentum to reach the previous swing high.
TF : 4h
Entry : $0.0900
Target : $0.0983
SL : $0.0850
Currently, #ATAUSDT is compressed within a falling wedge pattern, a classic bullish reversal signal.
Should #ATA fail to bounce back from the $0.0820-$0.0700 support, our eyes will be on the next critical level at $0.0580. Historically, this level has been a stronghold, and the probability of a rebound here is notably higher.
But if $ATA breaks below these key support levels, the bears might take control, potentially leading to a bearish continuation.