Как разделить строку с 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
Las personas demisexuales no experimentan atracción sexual sin el factor emocional de por medio.
Los detalles aquí en Tremenda Nota👇👇🏳️🌈
#UnCódigoInclusivo
#LeyDeIdentidadDeGénero
#DerechosSí
#ArchivoTN
https://www.tremendanota.com/demisexuales/
El desconocimiento acerca de la intersexualidad en Cuba hace de este grupo uno de los menos visibles en la sociedad
Los detalles aquí en Tremenda Nota👇👇🏳️🌈
#UnCódigoInclusivo
#LeyDeIdentidadDeGénero
#DerechosSí
#FinAlMatrimonioInfantil
#PrivilegiosNo
#ArchivoTN
https://www.tremendanota.com/intersexuales-en-cuba-la-zona-mas-invisible-del-colectivo-lgbti/
Hoy se cumplen dos años de la sonada marcha por los derechos de la comunidad LGBTIQ+ y Tremenda Nota se suma a esta celebración con un resumen de la trayectoria de la plataforma 11M
#Aniversario11M#TodosLosDerechosParaTodasLasPersonas
#LeyDeIdentidadDeGénero
#UnCódigoInclusivo
#DerechosSí
#PrivilegiosNo
🏳️🌈Activistas LGBTI celebran el primer aniversario de la marcha independiente del 11 de mayo de 2019
https://www.tremendanota.com/activistas-lgbti-celebran-el-primer-aniversario-de-la-marcha-independiente-del-11-de-mayo-de-2019/
🏳️🌈Editorial: «El Orgullo LGBTI+ y la lucha por el matrimonio igualitario en Cuba»
https://www.tremendanota.com/editorial-el-orgullo-lgbti-y-la-lucha-por-el-matrimonio-igualitario-en-cuba/
🏳️🌈Activistas celebran un 14 de febrero LGBTI+ en Cuba
https://www.tremendanota.com/activistas-celebran-un-14-de-febrero-lgbti-en-cuba/
🏳️🌈Activismo LGBTI+: Cenesex respondió a 11M Cuba una denuncia sobre la homofobia y la transfobia de los medios oficiales cubanos
https://www.tremendanota.com/activismo-lgbti-cenesex-respondio-a-11m-cuba-una-denuncia-sobre-la-homofobia-y-la-transfobia-de-los-medios-oficiales-cubanos/
🏳️🌈El activista Raúl Soublett salió a las calles de La Habana el 11 de mayo de 2019, junto a cientos de personas que reclamaban derechos para la comunidad LGBTI+.
https://youtu.be/V5Ht2Bd-XMA
🏳️🌈Cuba: Celebran el segundo aniversario de la marcha LGBTI+ del 11 de mayo de 2019
https://www.tremendanota.com/cuba-celebran-el-segundo-aniversario-de-la-marcha-lgbti-del-11-de-mayo-de-2019/
Tremenda Nota se suma al #DíaInternacionalDeLasFamilias
#TodosLosDerechosParaTodasLasPersonas
#LeyDeIdentidadDeGénero
#UnCódigoInclusivo
#DerechosSí
#PrivilegiosNo
📣 Volvemos este sábado 11 de septiembre con tuitazo. El Código de las Familias será #UnCódigoInclusivo o no será.
Puedes sumarte regalando ❤️ y 🔄 en las etiquetas:
🌈#UnCódigoInclusivo
🌈#MuchasFamiliasUnCódigo
🌈#DondeExisteAmorHayUnaFamilia
🌈#DerechosSí#PrivilegiosNo
Las cuentas a etiquetar son:
@DiazCanelB
@AsambleaCuba
@anamarianpp
@HomeroAcostaA
@OscarCubaMinjus
@CubaMinjus
@JosLuisToledoS1
Y también puedes etiquetar a quienes integran la comisión redactora del #CódigoDeLasFamilias. Aquí está la lista ⬇️
https://twitter.com/11M_Cuba/status/1388509866885529606?s=19
#11M
#MarchaLGBTI🏳️🌈#DíaDelMovimientoLGBTICubano
#Aniversario11M#TodosLosDerechosParaTodasLasPersonas
#LeyDeIdentidadDeGénero
#UnCódigoInclusivo
#DerechosSí
#PrivilegiosNo
La marcha del 11 de mayo de 2019 es, hasta ahora, el momento más grande del activismo LGBTI+ cubano.
Cientos de personas marcharon en La Habana, decididas a mantener la visibilidad de la comunidad gay, lesbiana, bisexual y trans.
Tremenda Nota conversó con algunos de sus protagonistas a dos años de aquel día.
🏳️🌈El activista LGBTI+ Elier Crespo recuerda la marcha del 11 de mayo de 2019
https://youtu.be/o-PfcDRYldk
🏳️🌈Raúl Soublett sobre la marcha del 11M ¿Cuánto estamos dispuestos a hacer por nuestros derechos?
https://youtu.be/V5Ht2Bd-XMA
#VideoTN
¡Síguenos en nuestro canal de YouTube!
https://youtube.com/c/TremendaNota
A unas pocas semanas de presentarse el Código de Familias en la Asamblea Nacional del Poder Popular, Tremenda Nota se suma al activismo LGBTI+ en sus campañas con un pack de pegatinas made by Polari para tu móvil, un poste o la puerta de casa, así los conservadores sabrán que vamos a dar pelea.
Todavía estás a tiempo de hacer tu aporte a las campañas💵🏳️🌈👇
#AhoraSí
No. de cuenta:
9204 0699 9429 4015
#LesSticketeadores
No. de cuenta:
9224 9598 7787 8676
#MuchasFamiliasUnCódigo
#TodosLosDerechosParaTodasLasFamilias
#DondeExisteAmorHayUnaFamilia
#TodosLosDerechosPara#TodasLasPersonas
UnCódigoInclusivo
#SinArcoirisNoHayLuz
#LGBTIQ+
#pridemonth
#pride
#matrimonioigualitario
#TremendaNota
#RevistaMarginal
#DerechosSí
#PrivilegiosNo