Как разделить строку с 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
Hurmatli professionallar! 👷🏽♂️
Bizni butlovchi qismlarham qalbakilashtirishni boshlashdi!
Aynan osmalar nazarda tutilmoqda.
Nosirjon qalbaki mahsulotni qanday farqlashni va nima uchun uni sotib olmaslikni batafsil tushuntirgan video bilan tanishing.
Ogoh boʻling, KNAUF osmalari xavfsizligingiz kafolatidir.
Keng tarqalgan yanglish fikrga koʻra, osmaning qalinligi uning sifatini belgilaydi.
Yoʻq.
Taʼsiri bor, lekin bu asosiy omil emas.
Qalinlikdan tashqari KNAUF mutaxassislari ishlab chiqarishda hisobga oladigan metall va rux sifatini, osma shaklini va boshqa omillarni inobatga olish zarur.
https://telegra.ph/KNAUF-TOGRI-OSMA-10-13
Aldanib qolmang!
Sifatli materiallar ishlating!
KNAUF ishlating!
————————————————————
Уважаемые профессионалы!👷🏽♂️
Нас начали подделывать и в комплектующих материалах!
А именно - подвесы.
Ознакомьтесь с видео, где Носиржон подробно рассказывает, как отличить подделку и почему не стоит ее покупать.
Будьте бдительны, подвесы КНАУФ гарантия вашей безопасности.
Есть распространенное заблуждение, что толщина подвеса определяет его качество.
Нет.
Влияет, но не является главным.
Кроме толщины необходимо учитывать качество металла и цинка, форму подвеса и другие факторы, которые специалисты КНАУФ учитывают при производстве.
https://telegra.ph/PRYAMOJ-PODVES-KNAUF-10-13
Не дайте себя обмануть!
Используйте качественные материалы!
Используйте КНАУФ!
#KnaufUzbekistan#подвес#osma
Quvurlar, simlar, ventilyatsiya kabi aloqa vositalari berkitish yoki gipskartondan shiftni kerakli balandlikka oʻrnatish uchun yechim qidirayotgan boʻlsangiz, unda nonius osma – sizga aynan keraklisi.
Bunga sabab u:
● Universal: har qanday vazifa uchun mos, uzunligi rostlanadi;
● Mustahkam: har bir elementi 40 kggacha yuklamaga chidaydi;
● Oddiy: maxsus koʻnikmalarsiz oson oʻrnatiladi.
Nonius osmadan foydalanasizmi?
Izohlarda tajribangiz haqida yozing.
Sifatli materiallardan foydalaning.
KNAUFʼdan foydalaning
P.S. Storizlarimizda nonius osmani oʻrnatish boʻyicha koʻrsatmalarini tomosha qilishni unutmang!
P.P.S. Nonius osma sizga tanishmi? Izohlarda taassurotlaringizni ulashing!
Batafsil
- - - - -
Если вы ищете решение для сокрытия коммуникаций: труб, проводки, вентиляции или монтажа потолка из гипсокартона на нужную высоту, то нониус-подвес — это то, что вам надо.
Потому что он:
● Универсальный: подходит для любых задач, регулируется по длине;
● Прочный: выдерживает до 40 кг на каждый элемент;
● Простой: легко монтируется без специальных навыков.
●
А вы уже используете нониус-подвес?
Поделитесь в комментариях своим опытом.
Используйте качественные материалы!
Используйте КНАУФ!
Подробнее
#knaufuzbekistan#knauf
#Нониус#подвес#потолок#гипсокартон#коммуникации#ремонт#стройка#универсальность#надежность#простота
#gipskarton#Nonius#osma#shift#gipskarton#aloqavositalari#taʼmir#qurilish#universallik#ishonchlilik#oddiylik
Quvurlar, simlar, ventilyatsiya kabi aloqa vositalari berkitish yoki gipskartondan shiftni kerakli balandlikka oʻrnatish uchun yechim qidirayotgan boʻlsangiz, unda nonius osma – sizga aynan keraklisi.
Bunga sabab u:
Batafsil: https://knauf.uz/qr/R3RzaRg8
- - - - -
Если вы ищете решение для сокрытия коммуникаций: труб, проводки, вентиляции или монтажа потолка из гипсокартона на нужную высоту, то нониус-подвес — это то, что вам надо.
Подробнее: https://knauf.uz/qr/R3RzaRg8
YouTube
Instagram
Telegram
#knaufuzbekistan#knauf
#Нониус#подвес#потолок#гипсокартон#коммуникации#ремонт#стройка#универсальность#надежность#простота
#gipskarton#Nonius#osma#shift#gipskarton#aloqavositalari#taʼmir#qurilish#universallik#ishonchlilik#oddiylik
Quvurlar, simlar, ventilyatsiya kabi aloqa vositalari berkitish yoki gipskartondan shiftni kerakli balandlikka oʻrnatish uchun yechim qidirayotgan boʻlsangiz, unda nonius osma – sizga aynan keraklisi.
Bunga sabab u:
Batafsil: https://knauf.uz/qr/R3RzaRg8
- - - - -
Если вы ищете решение для сокрытия коммуникаций: труб, проводки, вентиляции или монтажа потолка из гипсокартона на нужную высоту, то нониус-подвес — это то, что вам надо.
Подробнее: https://knauf.uz/qr/R3RzaRg8
YouTube
Instagram
Telegram
#knaufuzbekistan#knauf
#Нониус#подвес#потолок#гипсокартон#коммуникации#ремонт#стройка#универсальность#надежность#простота
#gipskarton#Nonius#osma#shift#gipskarton#aloqavositalari#taʼmir#qurilish#universallik#ishonchlilik#oddiylik