Как разделить строку с 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
🖥Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
💬Birinchi raqamli windows blog | #windows10
Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
👉🏼Birinchi raqamli windows blog | #windows10
Windows 10 OT-da siz yarata olmaydigan papkalar
🗂 Ko'pchilik bilsa kerak, Windows operatsion tizimida "CON" nomi bilan papka ochib bo'lmaydi. Windows OT-da nafaqat "CON" balki, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 va LPT9 nomlari bilan ham papka yaratib bo'lmaydi.
ℹ️ Buning sababi shundaki, ushbu papka nomlari muayyan tizim vazifalarida foydalanish uchun saqlangan va agar siz bu nomlar bilan papkalar ochadigan bo'lsangiz, bu tizim chalkashliklariga olib kelishi mumkin.
P.S.: Ayrimlar Bill Gates-ni yoshligida "CON" laqabi chaqirishgani uchun, Windows OT-larda "CON" nomi bilan papka yaratib bo'lmaydi deb o'ylaydi 😂
👉Birinchi raqamli windows blog | #windows10
Windows 10 da bir nechta ish stollarini qanday yaratish mumkin?
Ikkinchi ish stolini olish uchun Win + Tab tugmalar birikmasini bosing keyin Ish stolini yaratish-ni bosing va tayyor.
Faol ish stollari o'rtasida almashish Win + Ctrl + chap / o'ng strelka klaviatura yorlig'i yordamida amalga oshiriladi.😉
@BigMasterUz_bot – universal ustoz!
👉🏼Birinchi raqamli windows blog | #windows10
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
💻 Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
⚠️ Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10
Windows 10 ni zavod sozlamalariga qaytarish
1. Klaviaturada Win + I kombinatsiyalarini bosing
2.Обновление и безопасность va Восстановление
3.Начать tugmasini bosing
✅ Shundan so'ng fayllarni saqlagan holda kompyuterni zavod sozlamalariga qaytarishinggiz yoki butunlay o'chirib tashlashinggiz mumkin.
P.s:Agar post foydali bo'lsa reaksiya qoldiring.
👉🏼Birinchi raqamli Windows blog | #windows10 / #foydali
Ish stoliga Мой компьютер belgisini qanday qo'shish mumkin
1⃣ Ish stolida sichqonchaning o‘ng tugmachasini bosing va Персонализацияni tanlang
2⃣Темы bo'limiga o'ting va o'ng tomonda "Ish stoli belgisi parametrlari" menyusini bosing
3⃣Параметры значков рабочего столаni belgilang va применить tugmasini bosing
⚠️ Ushbu lifehack faqat Windows 10 foydalanuvchilari uchun.
P.s: Tan oling buni bilmasdinggiz 😁
👉🏼Birinchi raqamli Windows Blog | #foydali / #windows10