Как разделить строку с 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
#AloqaVentures#AloqaTechLab#startup#venturecapital#demoday
В целях устойчивого роста цифровой экономики страны и улучшения стартап-индустрии венчурных фонд "AloqaVentures" совместно с " It Park Uzbekistan" и коммерческим банком «Aloqabank», 24 сентября проведен финальный Demo day программы акселерации «AloqaTechLab».
✅ Данная программа направлена на оказание всесторонней поддержки в запуске перспективных стартап-проектов в7 сфере финансовых технологий, электронной коммерции, цифровых услуг и программных продуктов.
🚀 В финале программы акселерации прошли 26 стартап-проектов и 189 участников, среди которых определены стартап-проекты, имеющие возможность получить инвестиции от венчурного фонда «AloqaVentures» в размере до 50 тыс. долл. США.
Кроме того, стартап-проекты из финалистов программы акселерации «AloqaTech Lab» примут участие в в международном конкурсе Entrepreneurship World Cup 2022
www.aloqaventures.uz, www.aloqatechlab.uz
#AloqaVentures#AloqaTechLab#startup#venturecapital#demoday
Mamlakatimizda raqamli iqtisodiyotni barqaror rivojlantirish va startap sohasini takomillashtirish maqsadida “AloqaVentures”, “IT Park Uzbekistan” va “Aloqabank” tijorat banki bilan hamkorlikda, 24 sentyabr kuni “AloqaTechLab” akseleratsiya dasturining yakuniy Demo kuni bo’lib o’tdi.
✅ Ushbu dastur moliyaviy texnologiyalar, elektron tijorat, raqamli xizmatlar va dasturiy mahsulotlar sohasida istiqbolli startap loyihalarni ishga tushirishda har tomonlama qoʻllab-quvvatlashga qaratilgan.
🚀 Akseleratsiya dasturining final bosqichiga 26 ta startap-loyiha va 189 nafar ishtirokchi yo‘l oldi, ular orasidan AloqaVentures venchur fondidan 50 ming AQSh dollarigacha bo‘lgan investitsiyalarni olish imkoniyatiga ega bo‘lgan startap loyihalari aniqlandi.
Bundan tashqari, “AloqaTech Lab” akseleratsiya dasturida tanlab olingan finalchilar xalqaro Entrepreneurship World Cup 2022 tanlovida ishtirok etishadi.
www.aloqaventures.uz, www.aloqatechlab.uz
😃Startup Garage Qoraqalpogʻiston filiali ochilish marosimidan video reportaj.
🏠Mazkur loyiha Qoraqalpogʻiston Respublikasi, Nukus shahri, “AloqaBank” binosida joylashgan.
📍Manzil: 230100, Qoraqalpogʻiston Respublikasi, Nukus shahri, Islom Karimov koʻchasi 102-uy
#AloqaBank#AloqaVentures#StartupGarage#Innovatsiya#Startup#Startaplar#Nukus
🌐Aloqa LIVE
🇺🇿Qashqadaryo startaplari uchun yangi imkoniyat
🚀Bugun, Qarshi shahrida Startup Garage loyihasining yangi filiali ochilish marosimi bo‘lib o‘tmoqda. Ushbu loyiha AloqaBank, AloqaVentures va Startup Garage tashabbusi bilan tashkil etilgan bo‘lib, mamlakatimizning barcha hududlarida, jumladan 12 ta viloyatda yosh tadbirkorlar va startaplarni qo‘llab-quvvatlashga yo‘naltirilgan.
🚀Startup Garage filiali ochilish marosimi ikki bosqichda o‘tkazilmoqda:
➡️ Marosimning birinchi qismi Qarshi shahridagi Yoshlar markazida bo‘lib o‘tmoqda. Bu yerda ishtirokchilar va mehmonlar mutaxassislar tomonidan startaplar va investitsiyalar haqida batafsil ma'lumotlarni olishdi.
➡️ Startup Garage ofisining ochilish marosimining ikkinchi qismi AloqaBank binosida joylashgan Startup Garage ofisida davom etadi. Ushbu ofis yangi startaplar uchun zarur infratuzilma, ishchi maydon va boshqa xizmatlarni taqdim etuvchi zamonaviy innovatsion markaz bo‘lib xizmat qiladi.
Yangiliklar va tafsilotlarni kanalimizda kuzatib boring!
Batafsil: Startup Garage
#AloqaBank#AloqaVentures#StartupGarage#Innovatsiya#Startup#Startaplar#Qashqadaryo
🌐Aloqa LIVE