Как разделить строку с 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
Друзья!
С удовольствием делимся с вами фрагментом нашего минувшего концерта в ЦДУ РАН🤗. Для вас – Алексей Чеботарев и мужской хор Logos с нежной, лиричной, вдохновляющей песней о поиске своей любви, невзирая на время и расстояние, "No importa la distancia" в аранжировке Максима Котогарова.
Поделитесь и вы с нами в комментариях вашими эмоциями и впечатлениями от концерта 🙏
А для тех, кто не смог присоединиться к нам вчера и кто захотел увидеться с нами снова, – ссылочка на наш Пасхальный концерт в Доме Музыки 23 апреля😉: https://www.mmdm.ru/reserve-ticket/8793/
#хорlogos#концерт#акапелла#цдуран#домученых#noimportaladistancia#RickyMartin
#ммдм#доммузыки
Музыкальные новости 🎵
1️⃣Ricky Martin — первый обладатель Latin Icon Award
На церемонии MTV VMA 2025 в Нью-Йорке легендарный пуэрториканец Рики Мартин получил первую в истории награду Latin Icon Award.
Трофей вручила Джессика Симпсон, а J Balvin почтил его карьеру, исполнив один из хитов.
«40 лет, и я всё ещё здесь. Пусть страны объединяются, а музыка живёт»
— сказал артист, посвятив премию своим детям.
За карьеру он продал более 70 млн альбомов и собрал свыше 180 наград.
2️⃣Мексика — столица латинской музыки
Аргентинский продюсер Эдуардо Басага́нья уверен: будущее музыки на испанском языке решается именно в Мексике.
Он запустил +VIVO — первую в Латинской Америке платформу цифровых концертов, а теперь развивает проект первой музыкальной метавселенной региона.
Сегодня Мексика входит в десятку крупнейших музыкальных рынков мира: доходы от стриминга превышают 1,5 млрд долларов в год. Именно отсюда на мировую сцену вышли такие артисты, как Peso Pluma.
3️⃣Sech выпускает танцевальный гимн Novio No
Панамский певец Sech вернулся с треком в стиле dancehall. Песня о свободе и уверенности звучит как гимн празднования жизни, а клип подчёркивает близость к слушателям.
В последние месяцы артист сотрудничал с Danny Ocean, Mora и другими, а теперь отмечен двумя номинациями на Premios Juventud 2025.
4️⃣El Alfa и его новый хит JamRock
Доминиканский «король дембоу» El Alfa представил свежий сингл, клип снят в Санто-Доминго. В августе он стал гостем на концерте Bad Bunny в Пуэрто-Рико, а сейчас номинирован на Premios Juventud за трек с Black Eyed Peas и Becky G.
По словам El Alfa, это признание глобальной силы доминиканской музыки.
5️⃣Tiago PZK представляет балладу Domingo
Аргентинский певец Tiago PZK выпустил эмоциональную песню в стиле ностальгической кумбии. Domingo — о тоске и воспоминаниях, которые сильнее всего ощущаются в воскресенье.
Трек продолжает успешный год Tiago: два аншлага в Movistar Arena в Буэнос-Айресе и масштабный тур по Латинской Америке и Европе.
#RickyMartin#JBalvin#Mexico#EduardoBasagaña#Sech#ElAlfa#TiagoPZK#МузыкаLatAm#PremiosJuventud#МузыкаЛАТАМ
👉Всегда свежие новости о странах Латинской Америки!