Как разделить строку с 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
🍽 Frittata (Tortilla) de pasta 🍽
🍴Ingredientes🍴
✓fideos o espaguetis ya cocinados
✓1 cucharada de aceite de oliva virgen
✓3 cebollas finamente picadas
✓perejil
✓albahaca picada
✓1 tomate cortado en cubitos
✓4 huevos
✓½ taza de leche
✓Queso rallado
🥣 PREPARACIÓN 🥣
👁🗨 Pon aceite en una sartén y fríe las cebollas picadas hasta que queden transparentes.
👁🗨 En un bol bate los huevos y la leche. Añade la cebolla cocinada, el queso rallado, el perejil, albahaca, sal y pimienta.
👁🗨 Por último, pon los espaguetis. Mezcla bien todo.
👁🗨 En una sartén con una gota de aceite vierte la mezcla y cocina a fuego medio-bajo como si se tratase de una tortilla.
👁🗨 Da la vuelta y cocina por ambos lados.
#recetas con sobras
#CAFE#RECETAS ⛾ | Como en las mejores cafeterías: cómo preparar café con leche frío para combatir el calor https://ift.tt/XsRBZSE August 05, 2025 at 12:00PM
🍧 Arroz con Leche Cubano 🍧
🍴INGREDIENTES 🍴
3/4 tazas de arroz de grano largo o corto
2 tazas de agua
1/4 de cáscara de un limón amarillo mediano
2 palitos de canela en rama
1 lata (12 onzas) de leche evaporada
1 lata (14 onzas) de leche condensada azucarada
1 cucharadita de extracto de vainilla
1/4 cucharadita de sal
Mas agua, si es necesario
🥣 PREPARACIÓN 🥣
👁🗨 En una olla a fuego mediano a mediano alto, hierve el arroz, el agua, la cáscara de limón amarillo y los palitos; luego baja a fuego bajo y tapa. Cocina a fuego lento durante 10 minutos, o hasta que el arroz esté tierno.
👁🗨 Una vez que el arroz esté tierno, retira la cáscara de limón con una cuchara.
👁🗨 A fuego lento, agrega a la misma olla, gradualmente la leche evaporada y la leche condensada endulzada, revolviendo constantemente para evitar que el arroz se pegue.
👁🗨 Agrega la sal y el extracto de vainilla, revolviendo constantemente.
👁🗨 Cocina; continúa revolviendo durante unos 7 a 10 minutos, hasta que la mezcla espese. Hasta obtener la consistencia deseada.
👁🗨 Retira del fuego y deja enfriar antes de colocar en el refrigerador tapado.
Nota: el secreto para un gran arroz con leche es que el arroz este tierno! Siempre poner el arroz a remojar en agua al menos dos horas antes de comenzar a preparar la receta.
#postres#recetas#cubanas