Как разделить строку с shell-командой на отдельные аргументы в виде списка?
Если сделать просто сплит по пробелу то получим то что надо, кроме случаев со вставками текста с пробелами. Например так:
>>> '-arg "I Am Groot"'.split(' ')
['-arg', '"I', 'Am', 'Groot"']
Чтобы учитывать текст в кавычках как единый аргумент можно воспользоваться функцией shlex.split()
Кто читает мой канал давно, уже в курсе.
А что делать, если нужно обратное действие? Объединить аргументы из списка в строку и при этом добавить кавычки в аргумент с пробелами.
Конечно, если вы используете subprocess то он сам всё разрулит. Но если вам нужна именно команда одной строкой, то можно воспользоваться готовой функцией в том же subprocess.
>>> from subprocess import list2cmdline
>>> list2cmdline(['-arg', 'I Am Groot'])
'-arg "I Am Groot"'
Он также позаботится об экранировании уже имеющихся кавычек
>>> list2cmdline(['-arg', 'I Am "Groot"'])
'-arg "I Am \"Groot\""'
А вот так он может "схлопнуть" в команду JSON
>>> list2cmdline(['--json', json.dumps({'key': 'value'})])
'--json "{\"key\": \"value\"}"'
_______________
Возможно кто-то спросит, а зачем соединять аргументы в строку если subprocess сам это сделает а os.system не наш путь?
Мне как-то потребовалось отправлять команду на удалённое выполнение и в API поддерживалось указание команды только строкой. Так что всякое бывает)
#libs#basic
#POWR/USDT analysis :
#POWR has successfully broken above the trendline and is anticipated to continue its upward movement, with the potential to test previous highs. This breakout signals a bullish trend, suggesting further price appreciation in the near term.
TF : 1D
Entry : $0.3090
Target : $0.4500
SL : $0.2270
#POWR/USDT analysis :
#POWR is currently in an uptrend, trading above the 200 EMA. The price has bounced back from the support zone with strong volume. As a result, we can expect the price to maintain its bullish momentum and test higher levels.
TF : 2H
Entry : $0.3500
Target : $0.4200
SL : $0.3022
#POWR/USDT analysis :
#POWR is in a correction phase and has recently tested the resistance zone near the 200 EMA. The price is anticipated to be rejected from there and continue its downward direction. Wait for the break of the $0.1936 level for entry.
TF : 4H
Entry : $0.1936
Target : $0.1751
SL : $0.2058
#POWR👈
https://www.binance.com/en/trade/POWR_BTC
Buy at current 320-335
Highly pumpable Coin on the brink of 🚀
Buy in parts 👈strictly follow for max profits as its pump coin
Sell
🤑360-380
🤑380-410
🤑 410-440
🤑 440-470
🚀 470- 500 & above
Bullish above -300
#POWR👈
https://www.binance.com/en/trade/POWR_BTC
Buy at current 485-495
Highly pumpable Coin on the brink of 🚀
Buy in parts 👈strictly follow for max profits as its pump coin
Sell
🤑520-550
🤑 550-600
🤑 600-650
🤑 650-700
🚀 700- 750 & above
Bullish above -470
#POWR👈
https://www.binance.com/en/trade/POWR_BTC
Buy at current 525-540
Highly pumpable Coin on the brink of 🚀
Buy in parts 👈strictly follow for max profits as its pump coin
Sell
🤑 570-600
🤑 600-650
🤑 650-700
🚀 700- 750 & above
Bullish above -510
#POWR👈
https://www.binance.com/en/trade/POWR_BTC
Buy at current 605-610
Highly pumpable Coin on the brink of 🚀
Buy in parts 👈strictly follow for max profits as its pump coin
Sell
🤑 640-670
🤑 670-730
🤑 730-790
🚀 790- 850 & above
Stop Loss/Exit -590