Как разделить строку с 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
Our Group Tax Specialist, Ang Sim Tay, represented the #IRASFam as a panellist on 'Pillar Two: Global Minimum Tax' at the recent IFA Asia Pacific Regional Conference in Kuala Lumpur.
At the conference, leading tax experts from across the region discussed technical challenges surrounding new developments in Base Erosion Profit Shifting 2.0, transfer pricing and cross-border dispute resolution.
“The conference offered valuable insights into how Malaysia and Indonesia are approaching Pillar Two implementation,” Ang Sim reflected. “The robust exchange of perspectives on emerging tax issues was also enlightening. I’m particularly grateful for IFA Malaysia’s warm hospitality, which made my experience even more memorable.”
#lifeatIRAS#knowledgesharing
We're grateful for the opportunity to share our practical tax strategies with our Chinese friends, reinforcing Singapore's commitment to knowledge-sharing whilst positioning IRAS as an innovative tax administration. These exchanges strengthen bilateral relations and allow our innovations like FEDR and SFFS to serve as reference points for other jurisdictions.
#LifeatIRAS#knowledgesharing#supportingbusinesses
🐣 Don’t Miss This Exclusive Poultry Webinar!
Wednesday, November 12, 2025, at 11:00 AM EST for a powerful learning session with Dr. Bret Rings (DVM, Cobb) — hosted by Jamesway.
This webinar dives deep into evaluating 7-day chick mortality in the field, a vital topic for boosting flock performance, welfare, and profitability.
💡 What You’ll Gain:
✅ Simple, practical ways to categorize chick mortality
✅ How to identify early warning signs linked to flock health
✅ Insights into the main causes of first-week losses
✅ Data-driven corrective actions that actually work
✅ Proven methods to improve chick livability and overall farm results
Whether you’re a breeder, hatchery manager, veterinarian, advisor, or student, this session will equip you with valuable tools for continuous improvement and success.
📅 Date & Time: Wednesday, November 12, 2025 | 11:00 AM EST
🌐 Language: English (Spanish interpretation available)
📍 Register Now: https://bit.ly/3JJPiO1
🎥 Join Live or Watch On Demand
Let’s keep learning, sharing, and advancing poultry excellence together!
#Poultry#BroilerBreeders#HatcheryManagement#AnimalHealth#VeterinaryScience#Biosecurity#Cobb#Jamesway#WebinarWednesday#ContinuousImprovement#KnowledgeSharing