Как разделить строку с 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
Bitcoin and Ethereum ETF Outflows Report
On February 21, Bitcoin spot ETFs saw a net outflow of $62.77M, while BlackRock's ETF IBIT experienced a net inflow of $21.64M. Additionally, Ethereum spot ETFs recorded a net outflow of $8.92M. Read more here.
#Bitcoin#Ethereum#ETF#Crypto#Investment#Finance#BlackRock#MarketTrends#Outflows#Inflows#FinanceNews#Blockchain#WuBlockchain#DigitalAssets#SpotETF#Cryptocurrency#Trading#MarketAnalysis#Funds#Assets
Bitcoin ETFs Face Nearly $1B Outflows
Bitcoin ETFs experience record outflows nearing $1 billion. In 2023, all crypto sectors underperform compared to Bitcoin, with AI frameworks down 84%, agent projects 70%, and more. SEC acknowledges NYSE Arca's filing for Grayscale Ethereum ETF staking. Meanwhile, Bybit hackers have laundered 45,900 ETH ($113M) in 24 hours, totaling 135,000 ETH ($335M) to date, with more expected to be laundered soon.
#Bitcoin#ETH#Crypto#NFT#SEC#Grayscale#Bybit#Hacking#Market#AI#AgentProjects#Memecoins#Gamefi#DelphiDigital#VC#Outflows#BlockChain#Finance#Investments#DeFi#Web3
Crypto Outflows Reach $508M Amid Caution
Digital asset investment products experienced significant outflows of $508 million as investors react cautiously to uncertainties following the US Presidential inauguration. Influencing factors include market volatility surrounding trade tariffs, inflation, and monetary policy adjustments.
Read more: Unfolded
#Crypto#Investment#USPolitics#MarketVolatility#Inflation#MonetaryPolicy#DigitalAssets#DeFi#Ethereum#Trading#Finance#Economics#Outflows#Blockchain#Investors#Caution#RiskManagement#CryptoNews#MarketTrends#AssetManagement
Crypto Market Faces Severe Downturn
1️⃣ BTC inflow to exchanges hits annual high amidst panic. Price dropped below $90,000, triggering massive sell-offs.
2️⃣ Fear & Greed Index plunges to extreme fear (25), signaling anxiety in crypto markets.
3️⃣ BTC holders recorded losses of $1.73 billion, marking the highest since August 2024.
4️⃣ ETF funds faced major outflows totaling $1.01 billion, a record since launch.
5️⃣ Meme coins like Dogecoin and Shiba Inu drop significantly, as market saturation affects their traction.
6️⃣ New AI-meme project MIND of Pepe raises $6.8 million, distinguishing itself with functional AI integration.
7️⃣ Ethereum Foundation pledges $1.25 million for legal defense of Tornado Cash developer.
📈More Details on Bitcoin Rally Potential
🔗Ethena Stablecoin Investment
🔗Optifye Startup Controversy
#Crypto#BTC#ETH#MemeCoins#AI#MarketTrends#Investments#Outflows#FearAndGreed#Blockchain#Saturation#MarketAnalysis#DeFi#Ethereum#TornadoCash#VC#WhaleAlert#YCombinator#Optifye#MINDofPepe