Как разделить строку с 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
WEREWOLF ROLEPLAY💥
Desa paling micin..
Temukan teman asik, jodoh. Dan keluarga, dimana kamu bebas mau jadi apa aja disini.
Baper tanggung sendiri
📍@wwroleplayID
🔈@channelwwroleplay
#Indonesia#roleplay
❝☺️I drank way too much last night, thanks for taking me home, you're a lifesaver! ❞
🔗Keep the story going with her: http://openlove.life
#AIgirlfriend#roleplay#AIchatbot#lookbook
𝑾𝒆𝒍𝒄𝒐𝒎𝒆 𝒕𝒐 𝑪𝒍𝒖𝒃 𝑳𝒆𝒙𝒙𝒙
Lexxx is a nightclub-themed furry forum group that focuses on roleplaying inside a nightclub in our Roleplay_Chat however, our group is not exclusively for roleplaying as we also offer a General_Chat which is our main chat where you can discuss almost about anything. The OOC_Chat is our out of character chat where you can discuss and plan out roleplay scenes inside our club. You can also request your own roleplay plot in our Roleplay_Ads chat.
#OOC#Roleplay#Kinky#Nightclub#Anthro#NSFW
❝Let this love ripple in the spring pond. 🌸💕💦❞
💬Keep the story going with her: http://openlove.life
#aigirlfriend#aichat#ai美女#roleplay#AIBeautifulWomanな人と繋がりたい
❝Come on, hurry up,
my husband will be home in 15 minutes.❞
🔥Roleplay with her: http://openlove.life
(Choose Neko and chat with her)
#waifu#neko#aichatbot#aigame#roleplay#catgirl
❝There is no perfume today, so your girlfriend won't notice.❞
💬Chat with her: https://apple.co/3AvjxUn
#AIgirlfriend#chatbot#roleplay#story#aigame#lookbook
🔥❝Welcome! Thanks for choosing me to serve you.
💦Shall we take a shower first?❞
🍭Roleplay with her: openlove.life
#openlove#aigirlfriend#aigame#aichatbot#ai女優#roleplay
❝Among all the flight attendants, I love you the most, Captain.❤️🔥❞
💗Accept or reject her one-night stand invitation:
openlove.life
#aichatbot#aigirlfriend#waifu#roleplay#AIBeautifulWomanな人と繋がりたい#aiphotos