Как разделить строку с 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
Estados unidos.
Yeseny Melendez, una migrante venezolana de 35 años se encuentra muy grave, luego de sufrir un derrame cerebral cuando estaba frente a un juez en una Corte donde fue a pagar una multa de tránsito en Columbus, Ohio.
Tras sus desmayos arribaron al lugar, los servicios de emergencia y rápidamente ante su gravedad, solicitaron un helicóptero para trasladarla a un hospital.
La información sobre su estado de salud la dio a conocer su esposo, Joel Medina.
"Estaba muy ansiosa, preocupada por lo que podría pasar con Inmigración y tenía mucho miedo de que algo pasara."
"Ella se había presentado a cumplir con su deber y pagar la multa de tráfico que le habían colocado, pero pasó esto y estamos ahora en una situación muy, muy difícil" comentó su esposo afligido.
Desde la unidad de cuidados intensivos del Hospital Riverside Methodist, en Columbus, Medina precisó que tienen juntos a un niño de dos años y no cuentan con otros familiares dentro de los Estados Unidos #Univision
🏆Premios Juventud 2025: впервые в Панаме — латиноамериканская музыка возвращается домой!
В этом году Premios Juventud творит историю: впервые за 22 года церемония пройдёт не в США, а в самом сердце Латинской Америки — 25 сентября в Панама-Сити! И это не просто смена локации — это настоящий триумф для всего региона.
Почему именно Панама
Панама — это не просто точка на карте.
▪️Это место, где встречаются океаны и континенты.
▪️Это земля, на которой зародились ритмы, ставшие основой реггетона и латинского хип-хопа.
▪️Это страна, которая давно подарила миру свой голос — и теперь мир отвечает ей овациями.
Для Univision выбор Панамы — это признание: Латинская Америка заслуживает быть не просто участником, а главным героем вечера.
Что ждёт на церемонии
✔️Сцена с видом на Панамский залив, где тропические закаты сольются с яркими огнями шоу.
✔️Артисты из 15+ стран, которые соберутся вместе, чтобы показать: музыка не знает границ.
✔️Новые номинации — награды не только за хиты, но и за вдохновение, активизм и вклад в изменения к лучшему.
Почему это волнует весь регион?
Premios Juventud всегда был больше, чем просто шоу. Это зеркало того, чем живут миллионы молодых людей: музыка, культура, мечты о будущем. И впервые это зеркало отражает Латинскую Америку с её собственной земли.
Представьте: весь регион смотрит одно шоу, гордясь собой. Звучит реггетон, сияют звёзды, и в каждом доме ощущение: это про нас, это для нас, это с нами.
25 сентября, Панама-Сити — вечер, когда Латинская Америка будет праздновать саму себя.
#PremiosJuventud#Панама#Univision#латинскаямузыка#звёзды#реггетон#ЛатинскаяАмерика#Panama2025#музыка#праздник#гордость
👉Всегда свежие новости о странах Латинской Америки!