Как разделить строку с 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
ПЕРЕВОД приложения «Телеграм» НА АЛАНСКИЙ ЯЗЫК ПЕРЕХОДИТ В ФАЗУ ТОТАЛЬНОГО ПЕРЕВОДА.
Т.е. теперь будет осуществляться перевод для всех видов устройств, а не только андроида.
Напоминаем Аланский Язык ≠ карачаево-балкарский.
Аланский Язык - это чистый Аланский диалект Тюркского Языка, вообще без иностранной лексики.
Нынешний т.н. "карачаево-балкарский" язык - это смесь Аланской лексики с арабской, русской, персидской, адыгской, мегрельской, английской и прочей. Он был скрытным образом создан за последние 50 лет на земле Аланского Народа ( после геноцида ) для ускорения замещения нашей исконной культуры и мировоззрения антитюркскими сектантами из ордена ( секты ) "накшбанди" ( одна из множества арабских сект антитюркской направленности, созданных в целях саботажа тюркского общества ).
Нам удалось восстановить полностью весь календарный цикл, используя все доступные ресурсы.
Нам удалось разработать полноценные синонимы абсолютно всем инородным словам.
Перейти на Аланский вариант Телеграма можно по этой ссылке.
#dil#til#alanla#alan_til
✅ Мехтиев Аслан Назимович назначен временно исполняющим обязанности представителя Министерства внешней политики Аланского Государства в Германии.
Этот человек не словом, а делом доказал свою преданность идее свободы, демократии и справедливости, которые составляют основу государственной политики Аланского Государства.
:𐰸𐱃𐱃𐰆⸱𐰉𐰆𐰞𐰽𐰣⸱𐰸𐰞𐰖⸱𐰋𐰼𐰾𐰃𐰤:
#Alanla#Qaraçaj#Malqar#Alan_El#Ata_Curt
📰АЛАНЫ ВО ВСЁМ МИРЕ. НАМ ПОРА ОБЪЕДИНИТЬ УСИЛИЯ И ПОДГОТОВИТЬ ОСНОВУ ДЛЯ ВОССТАНОВЛЕНИЯ СВОЕЙ СТРАНЫ.
Аланский Народ разбросан сегодня по всему миру.
В ЕС, США, Канаде, Австралии, Южной Америке живут наши соплеменники.
Я считаю что нам самое время заняться формированием своего собственного правительства в изгнании, тем самым взяв ответственность за свою судьбу в свои руки.
#Аланла#Alanla#Karachay#Malkar#Elbrus
🔗Читать полностью
📋 Источник: Taulan Salpagarov
Qış alını / Qaraçanı 2 kününde orusnu qolunda caşağanladan qalğan barlıqnı Alanları caşağan kentilerigizni kök bajraqnı alıb törlerine çığarğa çaqırabız.
Keligiz, alanla, qajğıbıznı tışına da bildireyik, kesibizge da, öse kelgenlege da eskereyik bar bolğanıbıznı.
Kelir ajnı 2 kününde Qaraçajdağı Alanlanlağa orus basmaçıla qırdırıv etkenlerin inutturmajıq.
2 ноября всех Алан мира (кроме проживающих в российской оккупации) приглашаем на акцию
в день памяти жертв геноцида
Аланского Народа с небесно-синими флагами в центре городов вашего проживания.
Не позволим же забыть о геноциде Алан Карачая российскими оккупантами.
#Genocide_of_Alanians#Genocide1943#Alanla#Qaraçaj#Malqar#AlanianGovernment