Как разделить строку с 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
🌍 The Kalapani region is a small Himalayan area claimed by both India and Nepal. Its strategic location at the tri-junction with China makes it a unique hotspot of geopolitical geography. ✨
#borders⚡#dispute⚡#Himalayas⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
🌍 The border between Spain and Portugal includes a tiny disputed area called Olivenza, claimed by both countries for over 200 years. Its unique status shapes maps and diplomacy even today. ✨
#borders⚡#dispute⚡#Europe⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography🌍
🔴Biznes va tadbirkorlik oliy maktabida Tijorat nizolarini hal qilishning muqobil usullarini qo‘llash bo‘yicha ikki kunlik amaliy seminar yakunlandi
🇺🇿Mazkur seminar Oliy maktab tomonidan Osiyo taraqqiyot banki bilan hamkorlikda🇮🇹Italiya, 🇩🇪Germaniya, 🇵🇱Polshadan arbitraj va mediatsiya sohasining yetakchi ekspertlari, shuningdek, tijorat nizolarini arbitraj va mediatsiya asosida ko‘rib chiqishda katta tajribaga ega bo‘lgan mahalliy mutaxassislarni taklif etgan holda tashkil etildi.
🤔A two-day practical seminar on the application of alternative methods for resolving commercial disputes has been completed at the Graduate School of Business and Entrepreneurship
🇬🇧 The event was organized by the Graduate School in cooperation with the Asian Development Bank and featured leading experts in the field of arbitration and mediation from 🇮🇹Italy,🇩🇪Germany, 🇵🇱Poland, as well as local specialists with extensive experience in handling commercial disputes using arbitration and mediation.
🔴 В Высшей школе бизнеса и предпринимательствазавершился двухдневныйпрактический семинар по применению альтернативных способов разрешения коммерческих споров
🇷🇺Cеминар был организован Высшей школой при сотрудничестве с Азиатским банком развития с участием ведущих экспертов в области арбитража и медиации из 🇮🇹Италии, 🇩🇪Германии, 🇵🇱Польши, а также местных специалистов, имеющих богатый опыт в рассмотрении коммерческих споров на основе арбитража и медиации.
#GraduateSchool#ADB#Dispute#Commerical
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
🏦 Nizolarni muqobil hal qilish orqali biznes nizolarni bartaraf etish imkoniyatlari
🇺🇿 Oliy maktabda OTB hamkorligida xususiy biznes, xo‘jalik birlashmalari va davlat organlari vakillari, tadbirkorlik subyektlari uchun tijorat nizolarini muqobil hal etish masalalari bo‘yicha ikki kunlik amaliy seminarbo‘lib o‘tmoqda.
🌀 Options for Resolving Business Disputes- Focus on Alternative Dispute Resolution.
🇬🇧A two-day practical seminaris being heldat the Graduate School, focusing on alternative dispute resolution in commercial matters for representatives of private businesses, economic associations and government agencies.
🔴 Способы разрешения бизнес-споров: акцент на альтернативные методы разрешения конфликтов
🇷🇺 В Высшей школе совместно с АБР проводится двухдневный практический семинарпо вопросам альтернативного разрешения споров в коммерческих спорах для субъектов предпринимательства, включая представителей частного бизнеса, хозяйственных объединений и государственных органов.
#GraduateSchool#ADB#Dispute#Commerical
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
Community Divided Over Bybit's Request
Bybit calls on DEX ParaSwap DAO to return 44.67 wETH (~$100,000) in fees from hacked funds. Community opinions split: some advocate for returning the funds to avoid regulatory scrutiny, while others argue that the DAO shouldn't fix centralized service mistakes. A compromise of keeping 10% as a reward was suggested.
For more details, check the complete news article.
#Bybit#ParaSwap#DeFi#Crypto#DAO#Hacking#Ethereum#wETH#Regulation#Funds#Fees#Community#Dispute#Security#Blockchain#Tech#FinTech#Investing#Carl#VC