Как разделить строку с 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
Beim bevorstehenden Treffen des Sprachklubs, das am 17. September um 19:00 Uhr stattfindet, werden die Teilnehmer über moderne russische Künstler erfahren. 👨🏻🎨 Viele Russischlernende kennen berühmte Maler, deren Werke in der Tretjakow-Galerie und anderen russischen Museen zu sehen sind.
🖼️ Diese Veranstaltung bietet die Gelegenheit, tiefer in die Welt der zeitgenössischen Kunst einzutauchen. Gemeinsam wird die neue Ausstellung „Public Art“ besucht. Im Anschluss daran besteht die Möglichkeit, Eindrücke auszutauschen und das Gesehene mit der Street-Art-Szene Berlins zu vergleichen. So entsteht ein spannender Dialog über aktuelle künstlerische Entwicklungen in Russland und deren Beziehung zur urbanen Kunst anderer Metropolen.
Seid nächste Woche dabei!
📲Anmeldung ist erforderlich.
#sprachklub#russisch#russischlernen#russischesprache#eventberlin
🎬 Die Fortsetzung der spannenden Geschichte von Natalie Puschkin! In den Folgen 3. und 4. der Serie „Natalie und Alexander“ werden neue Kapitel ihres Schicksals enthüllt.
📺Kommt heute, am 9. September, um 19:00 Uhr, und bereitet euch auf unerwartete Wendungen der Handlung vor!😍🎥
🍿Anmeldung
#kino#puschkin#drama#geschichte#eventberlin
📢 An alle Kunstbegeisterten: Die Kunst-Vorträge mit Asja Gimborg finden schon HEUTE und MORGEN statt!
🎟️Heute, am 26.09, um 19:00 Uhr:
Eine fesselnde Reise durch die russische Kunstgeschichte – von Ikonen bis Malewitsch.
🎟️Morgen, am 27.09, um 19:00 Uhr:
Die explosive Welt der russischen Avantgarde – Kunst als Revolution!
🗣️In russischer Sprache
Das ist die letzte Chance, sich Tickets zu sichern! Kommt mit Freunden vorbei und taucht gemeinsam einin die spannende Geschichte der russischen Kunst!
#vortrag#berlin#kunstgeschichte#russischekunst#eventberlin
Interessiert Ihr Euch für große Künstler, aber nicht für trockene Fakten aus Lehrbüchern, sondern für spannende Geschichten? Wollt Ihr wissen, wie Meisterwerke entstanden sind, warum Kunst ihre Zeitgenossen schockierte und was sie uns heute noch zu sagen hat?🤔
Besucht die bevorstehenden Vorträge von Asja Gimborg — einer Kunsthistorikerin mit unverwechselbarem Vortragsstil, Bestsellerautorin über Kunstgeschichte und Schöpferin populärer Bildungsprojekte!😍
🎤Am 26. September verwaltet der Vortrag die jahrhundertealte Geschichte der russischen Kunst in eine fesselnde geistige Reise durch die Jahrhunderte: vom goldenen Glanz der Ikonen des 13. Jahrhunderts bis zur radikalen Stille des „Schwarzen Quadrats“. Hier begegnen sich Andrej Rubljow und Kasimir Malewitsch, strenger Kanon und künstlerischer Aufruhr, spirituelle Bildwelten und revolutionäre Formen.
📲Weitere Informationen und Anmeldung
🎤Am 27. September entführt der Vortrag in die stürmische, vielstimmige und kühne Welt der russischen Avantgarde, ein Phänomen, in dem sich byzantinische Ikonenmalerei plötzlich in die Geometrie des Suprematismus verwandelt und die kulturellen Codes des alten Russland in den Werken der Futuristen neu erklingen. Es ist die Geschichte von Künstlern, die nicht nur die Kunst, sondern auch die Wirklichkeit selbst verändern wollten.
📲Weitere Informationen und Anmeldung
Verpasst nicht die Chance, diese spannenden und einzigartigen Veranstaltungen zu erleben!😉
💬 Die Vorträge finden in russischer Sprache statt.
#vortrag#eventberlin#kunst#russischekunst#malewitch#avangart#kunstgeschichte