Как разделить строку с 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
Dozens of IDPs reportedly died of famine in Hitsats camp in Tigray. Read more. https://borkena.com/2025/12/25/ethiopia-dozens-of-idps-reportedly-died-of-famine-in-hitsats-camp-in-tigray/#Ethiopia#News#Tigray#Famine#IDPs
Всемирная продовольственная программа ООН (ВПП) опубликовала обновленные данные о количестве голодающих людей. Согласно оценкам экспертов количество голодающих может в этом году достичь 270 млн человек, что на 82% больше по сравнению с аналогичным показателем до пандемии. Для предотвращения развития ситуации по негативному сценарию ВПП призывает выделить 4,9 млрд долл. США для оказания продовольственной помощи к концу года. Это позволит помочь 138 млн человек.
Основной причиной ухудшения ситуации является пандемия COVID-19, на которую наложилось падение запасов продовольствия и природные катаклизмы, такие как ураганы, саранча, а также эскалация конфликтов.
Наибольший рост уязвимости наблюдается в таких регионах, как Латинская Америка, Западная и Центральная Африка. В Латинской Америке в три раза увеличилось число людей, нуждающихся в продовольственной помощи. Всплески голода также наблюдаются в Западной и Центральной Африке, где число людей, не обеспеченных продовольствием, увеличилось на 135%, в Южной Африке – на 90%. К концу года число людей, живущих в условиях отсутствия продовольственной безопасности в городских районах только в Зимбабве, увеличится с 2,2 млн до 3,3 млн человек, что составляет 45% от общей численности городского населения страны.
Доступ к более подробной информации - на странице Центра многостороннего сотрудничества и евразийской интеграции Российского союза промышленников и предпринимателей (РСПП):
http://рспп.рф/events/news/vpp-oon-golod-nastupaet-5f071ce64de01/
#ВПП#WFP#UN#foodsecurity#famine#продовольственнаябезопасность#голод#ООН
🇵🇸Newly released footage shared by a British recruit who served at aid distribution sites run by the #Gaza Humanitarian Foundation exposes the aid system designed by Israel in cooperation with the United States to humiliate Palestinians.
Nearly 2,000 Palestinians were killed at the foundation’s distribution points in incidents that included shooting “for fun,” according to the recruit.
@EuroMedHR
#Genocide#Aid#GHF#Starvation#Famine#US#Palestine