Как разделить строку с 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
STON.fi Celebrates Successful Event in Tbilisi
#TON#Tbilisi#TONCommunity
At the recent meet-up in Tbilisi, STON.fi brought together the TON community with passionate discussions and showcases of innovative projects. The event, co-hosted by TON Georgia, highlighted the diversity of voices contributing to the growth of the TON ecosystem.
Source: link
@tonlines
🎧⤴
💎 Telegram’s Crypto Bot Launches Fee-Free Coin Swaps – Best Rates on TON and Beyond!
Telegram’s popular Crypto Bot introduced a groundbreaking Swap feature, enabling seamless exchanges of cryptocurrencies, including TON, at optimal market prices with 0% commission. This new feature empowers users to swap tokens effortlessly, catering to the needs of both seasoned traders and beginners. As Telegram strengthens its ties with The Open Network (TON), this development marks a significant step towards making zero-fee crypto trading more accessible and user-friendly. TON, Telegram, and crypto swaps headline this exciting update.
Chorus:
Swap it, drop it, no fees, we poppin’,
Crypto bot’s live, TON fam’s watchin’.
Best market rates, yeah, that’s the notion,
Zero percent, ridin’ this motion.
Verse 1:
Telegram’s bot, now it’s all in play,
Swappin’ TON coins without delay.
Zero fees stack, in a major way,
Crypto’s here to stay, what more to say?
Swipe right, the trades ignite,
Swappin' at the best rates, day or night.
TON on deck, the moves in sight,
Crypto bot’s game changin’, feelin’ right.
Chorus:
Swap it, drop it, no fees, we poppin’,
Crypto bot’s live, TON fam’s watchin’.
Best market rates, yeah, that’s the notion,
Zero percent, ridin’ this motion.
Verse 2:
From TON to ETH or BTC, quick like a flash,
One tap on Telegram, and the coins clash.
Zero fees givin' more green in the stash,
Crypto bot’s hustle, bringin’ in cash.
Telegram links up with TON,
Best swaps, no cap, just get it done.
In the market, bots always on the run,
Swappin’ coins, and we're havin' fun.
Chorus:
Swap it, drop it, no fees, we poppin’,
Crypto bot’s live, TON fam’s watchin’.
Best market rates, yeah, that’s the notion,
Zero percent, ridin’ this motion.
Verse 3:
Telegram and TON, now we’re connectin’,
Coins on the move, the fam’s respectin’.
Best rates, zero fees, no second-guessin’,
Crypto's risin', it's impressin'.
Swap so quick, it’s like a race,
Crypto bot's here, savin' time and space.
TON's in the mix, the market’s embrace,
With zero fees, everyone finds their place.
Chorus:
Swap it, drop it, no fees, we poppin’,
Crypto bot’s live, TON fam’s watchin’.
Best market rates, yeah, that’s the notion,
Zero percent, ridin’ this motion.
Bridge:
TON in the mix, we set the tone,
Zero fees, we break the stone.
Crypto bot's king on this throne,
This is the future, watch it be known.
#TONCommunity#CryptoSwap#TON
#TONCryptoNewsRapStyle
🎧@toncoin_rap
🙏SBT ONTON in real time!
🔍 Our chat has a bot that monitors the emergence of new SBTs in real time — they appear instantly along with passwords!
❤️ No need to search for them in different chats anymore - just join our community and get valuable Soul Bound Tokens to your wallet, so that you can get a drop for them later!
🟣Claim your SBT ONTON now!
#TON#ONTON#SBT#Airdrop#Web3#TONCommunity