Как разделить строку с 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
⏺#FLOKI is trying to break up the bullish flag pattern on Daily time frame, after breakout and retest we expect another pump 🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
⏺#FLOKI appears to have developed a cup and handle pattern, a technically bullish formation. 🐋
💫A strong confirmation of bullish sentiment would be achieved through a decisive breakout above the designated horizontal resistance. Conversely, a rejection at this level could signal an impending correction.
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Stake and Earn with FLOKI!
Users can now stake their $FLOKI tokens, and earn $TOKEN, with TokenPocket!
👉https://staking.floki.com
Easy Access: #Floki Staking is now integrated with the TokenPocket wallet, and you can find it on the Trending DApp List on the Ethereum network.
👉 Learn More: https://tokenpocket.pro
We are excited to announce our latest strategic partnership with Floki 🔥
What started as a meme has developed into an industry-leading utility project. Floki's innovative ecosystem offers a 3D NFT Metaverse, DeFi utilities, a crypto education platform, NFTs, a merchandise store, and more.
As part of this partnership, we have purchased $5 million worth of FLOKI tokens from the Floki Treasury. We believe that this partnership will drive the acceleration of Floki adoption in institutional circles and unlock greater growth of this innovative ecosystem.
We're looking forward to your continuous success in this space! 🫡
The future is #Floki! ✨
Find out more here.
Opened a short #FLOKI.
The asset tested $0.000326976, but was unable to go above it, after which market participants actively fixed positions, and pressure from sellers began.
The bears pushed the price and thereby broke through the ascending channel into shorts, with subsequent consolidation under it. Most likely this is not the end of the corrective movement and the coin will show a further decline.
Trading volumes have fallen sharply, which means buyers are looking for more profitable entry points and are not yet ready to take on positions. I assume the price will move to the area of $0.000128717 - $0.000138660.
Goals: $0.000156924 - $0.000148628 - $0.000138660.
Stop: 0.000182642$