Как разделить строку с 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
#Teatr
🎭Viloyatimizdagi teatrlarning 20-aprel, dushanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Laylaklar nolasi”
Vaqti: 11:00
Marg‘ilon shahar maqom teatri
Nomi: “Taqdir eshigi”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 18-aprel, shanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Shum bola”
Vaqti: 11:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Bevalar o‘lani”
Vaqti: 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Taqdir eshigi”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 16-aprel, payshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Oltin jo‘ja”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Ne hochu bit sobakoy”
Vaqti: 10:00
Nomi: “Sudiba Poeta”
Vaqti:14:00, 18:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Xonuma”
Vaqti: 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 14-aprel, seshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Kulolning orzusi”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 13-aprel, dushanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Oy tutilgan tunda”
Vaqti: 11:00 / 14:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 10-aprel, juma kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Kulolning orzusi”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 9-aprel, payshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Oy tutilgan tunda”
Vaqti: 14:00
Farg’ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 12:00
Qo’qon shahar musiqali drama teatri
Nomi: “Sohibqiron”
Vaqti: 14:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman”
Vaqti: 14:30
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 8-aprel, chorshanba kungi repertuari bilan tanishing.
Farg’ona viloyati musiqali drama teatri
Nomi: “Laylaklar nolasi”
Vaqti: 11:00
Farg’ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 10:00, 14:00
Qo’qon shahar musiqali drama teatri
Nomi: “Daydi itlar”
Vaqti: 11:00
Marg’ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman”
Vaqti: 14:30
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 7-aprel, seshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Sehrli libos”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Chernaya burka”
Vaqti: 10:00 / 14:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Nola aylarman” konserti
Vaqti: 14:30
Qo‘qon shahar musiqali drama teatri
Nomi: “Sohibqiron”
Vaqti: 14:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 27-mart, juma kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Teatrlashtirilgan konsert”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Kolobok”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Charog‘bon”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Zumrad va Qimmat”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 26-mart, payshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Alimentchi chol”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Xo‘ja Nasriddinning besh xotini”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Aziz”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Ochil dasturxon”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube
#Teatr
🎭Viloyatimizdagi teatrlarning 25-mart, chorshanba kungi repertuari bilan tanishing.
Farg‘ona viloyati musiqali drama teatri
Nomi: “Sehrli libos”
Vaqti: 11:00
Farg‘ona viloyati rus drama teatri
Nomi: “Kitsik va Mitsik”
Vaqti: 10:00
Marg‘ilon shahar musiqali maqom teatri
Nomi: “Iskandar”
Vaqti: 14:00
Qo‘qon shahar musiqali drama teatri
Nomi: “Bevalar o‘lani”
Vaqti: 14:00
Farg'ona viloyati qo'g'irchoq teatri
Nomi: “Etik kiygan mushuk”
Vaqti: 10:00
Izoh: Repertuarda o‘zgarish va qo‘shimchalar bo‘lishi mumkin.
Rasmiy sahifalarimizda bizni kuzating:👇
📱Telegram | 📱Instagram |
📱Facebook | 📱YouTube