Как разделить строку с 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
#Francia
Durante un suo comizio a Figeac in #Occitania, Emmanuel #Macron è stato contestato con un striscione che recitava "Quando tutto sarà privato saremo privati di tutto".
Il candidato Presidente ha risposto dicendo "Congratulazioni per essere in una democrazia dove puoi sfidare il presidente! Parlerò con loro dopo il comizio."
@UltimoraPolitics
Cardabèla — Cantos y danzas del Languedoc (Guimbarda, 1979)
#medieval#traditional#Occitania#France
Cardabela — французская группа из города Монпелье. Cantos y Danzas del Languedoc — их третий альбом с песнями их родного Лангедока, исторической области на юге Франции, части Окситании, родины средневековых трубадуров, население которой традиционно говорило на окситанском языке. Участники группы изучали музыку и пение трубадуров XII века. В результате их знания и происхождение сильно сказалось на звуке. Перед вами почти никому не известный выдающийся образец очень убедительного средневекового окситанского фолка.
Telegram
Jean Ségurel — Autour des Monédières (Odeon, 1959)
#chanson#traditional#Occitania#France
Для народной музыки Окситании, родины трубадуров, расположенной на юге Франции и в небольшой части Испании и Италии, характерны баллады. В балладах с этого альбома слышно переплетение мотивов этих стран, однако из-за исполнения Жана Сэгуреля они приобретают оттенок французского шансона. Жан-Батист Сэгурель – французский аккордеонист, композитор и дирижер, родился 13 октября 1908 года во французской коммуне Шомей. Сэгурель начинал как скрипач, однако, взяв в руки аккордеон по возвращению с военной службы, он осознал, что хочет посвятить этому инструменту свою жизнь. Значительный период карьеры Сэгурель был менестрелем своего времени: выступал на различных ярмарках и свадьбах. Друзья Жана-Батиста представили его основателю лейбла «Le Soleil», благодаря которому он утвердился как профессиональный музыкант. В 1968 году генерал де Голль присвоил ему звание кавалера Почетного легиона.
Spotify | AppleMusic
Bachàs — Cants E Mùsicas Dau Païs Nissart (Ventadorn, 1979)
#traditional#mandolin#violin#flute#hurdy_gurdy#accordion#Occitania#France
Bachàs — французский коллектив из города Ницца, исполнявший окситанский фолк на окситанском языке. Перед вами их первый альбом, на котором можно услышать старинные песни, инструментальную музыку и музыка для танцев из города Прованс, окрестностей Ниццы и других исторических областей юга Франции. Разнообразное звучание напоминает о музыке окситанских трубадуров и о народных мотивах соседних Испании и Италии.
Telegram
Lo Jai — Musiques Traditionnelles Du Limousin (Revolum, 1981)
#traditional#chabrette#ocarina#pifres#hurdy_gurdy#tambours#violin#Occitania#France
Группа Lo Jai была основана в Лионе в 1980 году, когда три участника фолк-группы Le Grand Rouge присоединились к своему коллеге, чтобы исследовать музыку Лимузена. Группа исполняет композиции в региональном стиле Лимузена, который напоминает арабскую музыку и служит напоминанием о том, что французская культура представляет собой не столько монолитную сущность, сколько множество региональных культур, звуков и языков. Перед вами первый альбом коллектива.
🔗Telegram