Как разделить строку с 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
Ds bevorstehende Treffen des Sprachklubs widmet sich Michail Saltykow-Schtschedrin, einem bedeutenden Schriftsteller und bekannten Satiriker des 19. Jahrhunderts.
📚 Seine Werke zeichnen sich durch scharfsinnige Gesellschaftskritik und tiefgründigen Humor aus, der auch heute noch relevant ist. Die Diskussion wird die literarische Bedeutung Saltykow-Schtschedrins sowie seinen Einfluss auf die russische Satire beleuchten.
📚 Besonderes Augenmerk liegt auf seinen charakteristischen Stilmitteln und den sozialen Themen, die in seinen Texten behandelt werden. Das Treffen bietet die Gelegenheit, seine Werke im historischen Kontext zu verstehen und die satirische Perspektive auf die Gesellschaft des 19. Jahrhunderts näher zu erkunden.
Seid am 28. Januar um 19:00 Uhr dabei!
🖇️Anmeldung
#sprachklub#russisch#russischlernen#russischesprache#schriftsteller
Ds bevorstehende Treffen des Sprachklubs widmet sich Michail Saltykow-Schtschedrin, einem bedeutenden Schriftsteller und bekannten Satiriker des 19. Jahrhunderts.
📚 Seine Werke zeichnen sich durch scharfsinnige Gesellschaftskritik und tiefgründigen Humor aus, der auch heute noch relevant ist. Die Diskussion wird die literarische Bedeutung Saltykow-Schtschedrins sowie seinen Einfluss auf die russische Satire beleuchten.
📚 Besonderes Augenmerk liegt auf seinen charakteristischen Stilmitteln und den sozialen Themen, die in seinen Texten behandelt werden. Das Treffen bietet die Gelegenheit, seine Werke im historischen Kontext zu verstehen und die satirische Perspektive auf die Gesellschaft des 19. Jahrhunderts näher zu erkunden.
Seid am 28. Januar um 19:00 Uhr dabei!
🖇️Anmeldung
#sprachklub#russisch#russischlernen#russischesprache#schriftsteller
Das nächste Treffen des Sprachklubs steht im Zeichen von Iwan Bunin, einem bedeutenden russischen Schriftsteller✍🏻, Dichter und Übersetzer. Als erster russischer Autor wurde ihm der Nobelpreis🏆 für Literatur verliehen und dieses Ereignis galt als ein Meilenstein in der Geschichte der russischen Literatur.📚
Im Mittelpunkt des Abends steht Bunins facettenreiche Biografie, die sowohl seine Jahre in Russland als auch seine Zeit im Pariser Exil umfasst. Außerdem haben die Teilnehmer die Möglichkeit, sich mit ausgewählten Textpassagen auseinanderzusetzen, um Einblicke in Stil, Themen und sprachliche Feinheiten seiner Prosa und Lyrik zu erhalten.😍
Seid am 15. Oktober um 19:00 Uhr dabei!
📲Anmeldung ist erforderlich.
#sprachklub#russisch#russischlernen#russischesprache#bunin#dichter#schriftsteller
Das bevorstehende Sprachklub-Treffen ist dem Leben und Schaffen von Iwan Turgenjew gewidmet – einem herausragenden russischen Schriftsteller und Autor des berühmten Romans „Väter und Söhne“. Im Mittelpunkt des Abends steht die Auseinandersetzung mit den zeitlosen Themen, die in seinen Werken behandelt werden. Die Teilnehmer werden sich mit Fragen befassen, die auch in der heutigen Gesellschaft nichts von ihrer Bedeutung verloren haben: dem Konflikt zwischen den Generationen, der Rolle des Einzelnen in der Gemeinschaft sowie den vielfältigen Facetten der Liebe.❤️
🖇️Das Treffen verspricht eine spannende und tiefgehende Diskussion über einen Autor, dessen Gedanken und Figuren bis heute zum Nachdenken anregen.😍
🗓️ Seid am 19. November um 19:00 Uhr dabei!
📲Anmeldung ist erforderlich.
#sprachklub#russischesprache#russischlernen#berlinevents#schriftsteller#turgenjew#roman#russischeliteratur
Das bevorstehende Sprachklub-Treffen ist dem Leben und Schaffen von Iwan Turgenjew gewidmet – einem herausragenden russischen Schriftsteller und Autor des berühmten Romans „Väter und Söhne“. Im Mittelpunkt des Abends steht die Auseinandersetzung mit den zeitlosen Themen, die in seinen Werken behandelt werden. Die Teilnehmer werden sich mit Fragen befassen, die auch in der heutigen Gesellschaft nichts von ihrer Bedeutung verloren haben: dem Konflikt zwischen den Generationen, der Rolle des Einzelnen in der Gemeinschaft sowie den vielfältigen Facetten der Liebe.❤️
🖇️Das Treffen verspricht eine spannende und tiefgehende Diskussion über einen Autor, dessen Gedanken und Figuren bis heute zum Nachdenken anregen.😍
🗓️ Seid am 19. November um 19:00 Uhr dabei!
📲Anmeldung ist erforderlich.
#sprachklub#russischesprache#russischlernen#berlinevents#schriftsteller#turgenjew#roman#russischeliteratur