Как разделить строку с 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
Норвезька компанія #Kongsberg Defense & Aerospace презентувала мобільну систему протиповітряної оборони малої дальності #NASAMS для сухопутних військ https://www.ukrmilitary.com/2023/07/kongsberg-nasams.html
Вслед за постройкой нового завода в Вирджинии Kongsberg Defence & Aerospace расширяет завод в Пенсильвании.
Норвежская компания Kongsberg Defence & Aerospace, приняла решение инвестировать дополнительно 10 млн.$ в расширение своих производственных мощностей на одном из заводов в Пенсильвании. Завод занимается производством боевых модулей с удалённым управлением. Компания дополнительно привлечёт 20 сотрудников и улучшит инфраструктуру.
Завод является самым большим в компании Kongsberg за пределами Норвегии. На нём трудится 220 работников и начиная с 2008 года было произведено более 20 000 боевых модулей.
#Норвегия#США#Kongsberg#Промышленность
Вестник NATO
Компания Kongsberg объявила о строительстве в округе Джеймс-Сити штата Вирджиния завода по производству ракет NSM и JSM.
Строительство завода в США знаменует очередную инвестицию компании в производство ракет следом за объявлением о строительстве нового предприятия в Австралии. У компании в планах также расширение своего производства в Джонстауне, штат Пенсильвания.
#Норвегия#США#Kongsberg#Промышленность
Вестник NATO
Міністерство національної оборони Литовської Республіки підписало контракт з #KONGSBERG на постачання додаткових систем #ППО NASAMS // #литва
https://www.ukrmilitary.com/2024/10/kongsberg-nasams.html
🚢Kongsberg Maritime оснастит новейшими системами новый полярный круизный лайнер "Scenic Ikon".
Норвежская Kongsberg Maritime получила контракт от MKM Yachts на поставку комплексного оборудования для экспедиционного лайнера "Scenic Ikon", строящегося для компании Scenic Cruise.
Судно длиной 203 метра - будет оснащено гибридной электрической установкой и движителями Elegance Pods, обеспечивающими низкий уровень шума, высокую эффективность и манёвренность, что позволит работать с нулевыми выбросами в экологически чувствительных районах мира.
С операционной точки зрения, проект отражает переход круизной индустрии к высокотехнологичным решениям с интеграцией энергетических систем, автоматизации и навигации, включая динамическое позиционирование и системы управления энергией.
Для рынка это подтверждает рост спроса на экологичные экспедиционные суда, где технологическая оснащённость становится ключевым конкурентным фактором.
📌Kongsberg Maritime AS — основана в 1814 году (как часть группы Kongsberg), один из ведущих мировых поставщиков морских технологий; входит в норвежскую группу Kongsberg Gruppen, контролируемую государством Норвегии.
#Cruise#Shipping#Technology#Decarbonization#Kongsberg
⚡️Пољска/Литванија — потпредседник Владе и МО Иван Анушић обилази хрватске трупе које се налазе у оквиру снага истуреног NATO копненог присуства
#бројке у Пољској је распоређен 17. хрватски контингент са 50 припадника, од којих је 7 жена. Део се налази и у Литванији.
#формација У борбеној групи под вођством САД делују и снаге У.Краљевства и Румуније, уз ојачање 15. механизоване бригаде оружаних снага Пољске као земље домаћина.
#фото Patria AMV хв 8x8 са ДУБС "Kongsberg" #март_2026
→ Извор: /t.me/borbeni_efektivi
→ Линк: /t.me/borbeni_efektivi
🪖#Пољска〣#Литванија〣#Хрватска〣#NATO〣#Иван_Анушић〣#Patria_AMV〣#Kongsberg〣#копнена_војска
🇷🇸https://t.me/borbeni_efektivi