Как разделить строку с 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
Qadrli yurtdoshlar,
Milliy Olimpiya qoʻmitasi Sizlarni bosh qomusimiz – Oʻzbekiston Respublikasi Konstitutsiyasi qabul qilinganining 33 yilligi bilan samimiy qutlaydi.
—
Дорогие соотечественники!
Национальный Олимпийский комитет искренне поздравляет Вас с 33-й годовщиной принятия Конституции Республики Узбекистан.
#Konstitutsiya
👉@OlympicUz
olympic.uz I YouTube I Instagram I
#konstitutsiya
Konstitutsiya-demokratik jamiyat, farovon hayot, barqaror taraqqiyot garovidir!
Qadrli yurtdoshlar, Sizlarni mamlakatimiz uchun ulkan ahamiyatga ega bo‘lgan O‘zbekiston Respublikasi Konstitutsiyasi qabul qilingan kun — milliy bayram bilan chin qalbdan tabriklaymiz!
Konstitutsiya — yurtimizda tinchlik va barqarorlik, inson huquq va erkinliklari, demokratiya va adolatning mustahkam poydevoridir. U mamlakatimiz taraqqiyoti, fuqarolarimiz farovonligi va yurt tinchligi yo‘lida asosiy qonun sifatida xizmat qilib kelmoqda.
Shu qutlug‘ kunda barchangizga
mustahkam sog‘liq,
tinch va farovon turmush,
insonparvarlik va mehr-oqibat tilaymiz.
Bosh huquqimiz qabul qilinganining 33 yilligi barchamizga muborak bo‘lsin!
👇Bizni kuzating:
🌐web-sayt |
📷instagram |
👉telegram |
▶️youtube |
💬facebook
#Konstitutsiya
📚 Har bir mamlakatda shunday bir muhim kitob borki, bu kitob butun mamlakatga va alohida insonlarga ham tegishli bo‘lgan muhim ma’lumotlar bor. Bizning O‘zbekistonimizning ham shunday kitobi bo‘lib, bu kitob O‘zbekiston Respublikasining Konstitutsiyasi deb ataladi.
🏛 Toshkent Kimyo xalqaro universiteti Namangan filiali Pedagogika va psixologiya kafedrasi Magistratura mutaxassisligi MPRI_N_23 UA guruhida “Designing and modeling of the educational process “fanidan o‘qituvchi NURALIYEVA KAMOLA hamda guruh sardori Jo‘raboyeva Shohruzalar tomonidan Konstitutsiyamizning 32 yilligi munosabati bilan.
"Konstitutsiya - baxtimiz qomusi"deb nomlangan ochiq dars tashkil etildi.
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube I
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasining 3️⃣1️⃣-moddasi.
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook
#konstitutsiya
📚Konstitutsiya Yuridik klinika talabalari talqinida🙂
📌O'zbekiston Respublikasi Konstitutsiyasining 2️⃣2️⃣- moddasi
☁️Murojaat uchun:
@TDYU_Yuridik_klinika_bot
🖥 Bizni ijtimoiy tarmoqlarda kuzating:
💬Telegram🌐Instagram🌐YouTube🌐TikTok🌐Facebook