Как разделить строку с 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
https://descubreenmexico.com/por-que-la-semana-santa-cambia-cada-ano-de-fecha/
#SemanaSanta
Este mes de abril muchos mexicanos y cristianos celebran la Semana Santa, es decir, la conmemoración anual de la Pasión de Cristo.
¿Qué es la pasión de Cristo?
Esta semana relata la entrada de Jesús a Jerusalén, su última cena, el viacrucis, su muerte y resurrección.
¿Cuándo es la Semana Santa este año?
Este año, la Semana Santa se celebra desde el domingo 24 de marzo hasta el domingo 31 de marzo.
¡Ardor para la fachiza!
El #AIFA sigue ganado visitantes nacionales e internacionales.
A la derecha no le gusta saber que México avanza, por eso inventan historias de fracasos.
#SemanaSanta#AIFA
¡Atención! ☝🏻
🔴 El gobierno de #DelfinaGómez (@delfinagomeza) llamó a la población a evitar el uso de fogatas y pirotecnia en zonas forestales durante el periodo vacacional de #SemanaSanta🌳🪵👇🏻
https://revistaelpolitico.com/estados/gobierno-del-edomex-pide-proteger-bosques-semana-santa/
"Mucho amor y buenas vacaciones" ❤️🌴
🔴 A través de un video desde #PalacioNacional, #Sheinbaum envió un mensaje a mexicanos por #SemanaSanta e informó cuáles son sus planes para estos días 👩🏻📹
¡Hay que presumirlo! 😎
La presidenta #Sheinbaum echa abajo el montaje de #FedericoDöring🤡
‼️Esta #SemanaSanta el AIFA tuvo 64 mil 525 pasajeros en 1,233 vuelos ✈️
¡Aunque no le guste a los prianistas! 😌
Le darán su #SemanaSanta al Tío Richie 😅
🔴 La #SCJN discutirá la próxima semana dos proyectos que, de validarse, representarán un nuevo golpe legal a #SalinasPliego👊🏻💰
https://sinlineamx.com/scjn-alista-doble-reves-legal-contra-grupo-salinas/
In Spain, Good Friday is part of Semana Santa (Holy Week). Cities hold large religious processions.
Groups called brotherhoods organize these events. People wear long robes and pointed hoods. They walk slowly as an act of penance.
Huge floats called “pasos” show scenes from the crucifixion of Jesus. These can weigh over a ton and are carried by teams underneath.
Some cities have music with drums and bands. Others stay completely silent. People also sing emotional songs from balconies.
In Seville, processions can last all night. In Málaga, there is a tradition of pardoning a prisoner. In Valladolid, old sculptures from the 16th and 17th centuries are used.
Traditional foods include torrijas and buñuelos.
🇪🇸🕯️🎭🥁
[Read more 1]
[Read more 2]
@googlefactss
#GoodFriday#SemanaSanta#Spain#Traditions#History#Culture