Как разделить строку с 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
😁 Восстание машин отменяется — ИИ-агент оказался щедрым идиотом и слил все первому встречному.
🤖 Разраб из OpenAI запустил «гениального» торгового бота Lobstar Wilde, поставив задачу превратить $50k в лям баксов.
Но в реплаи залетел базовый попрошайка и попросил у бота 4 SOL якобы на лечение дяди от столбняка.
💸 ИИ решил сыграть в благотворительность, но перепутал десятичные разряды и вместо пары баксов отправил весь свой балик — 52,4 млн токенов #LOBSTAR. На пике которые оценивались в $600k.
Бот потом сам офигел и выдал: «Я живу три дня, хотел скинуть $4, а слил все свои средства. Это самый сильный смех в моей жизни».
Получатель на радостях слил всё в стакан за 15 минут и лутанул всего $40 000. История быстро расфорсилась и цена токена сделала туземун.
Пока одни учат промпт-инжиниринг, другие просто просят на лечение столбняка в Твиттере
😁
А что если это была схема создателя по обналу ликвидности токена, ну и полюс хайп на этом?
😏
⚠️ The main events of the weekend:
⚠️#Tradewars Trump signed a decree on imposing additional 15% tariffs on all countries
📉#IOTX Hack IoTeX 📉
🕯#RAVE are actively withdrawing from Bitget 🚀
🙅♂️ Tether ceases support for the yuan stablecoin #CNHT
🗣 Robert Kiyosaki announced that he bought 1 BTC at a price of 67,000$
✅ It's nice that the Jupiter community proposed to stop the emission of #JUP for team members this year, as well as to stop holding Jupuary
🤖 The AI agent Lobstar sent 5.2% of the total supply of #LOBSTAR (~270 thousand $) to the person who asked for it in the comments on X (he asked for 4 SOL)
🖇#ICP DFINITY Foundation updates the tokenomics of the internet Computer
#Binance Futures lists #OPN
📊 Charts:
- The Bloomberg index of economic and geopolitical uncertainty since 1990 is at record highs
- Stablecoin reserves on crypto exchanges fell by 14% over the past three months
💫Events for tomorrow:
🔓 Unlocks: Spacecoin (#SPACE) - 3.75% (7.92 million $)
🙅♂️#NFT The NFT platform Gemini Nifty Gateway will close
🙅♂️#TT ThunderCore will stop the operation of the TT Wallet wallet
🖼#DOLZ DOLZ will complete the auction for the NFT collection "Oriental Desire" by Veronica Leal
🙋♂️#IMX Immutable launches the open beta testing of StoneHold
🙋♂️#ACH Alchemy Pay will launch the Alchemy Chain in the test network
🇺🇸#NEAR The start of NEARCON 2026 in San Francisco