Как разделить строку с 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
Title : "The Mysterious Nightmare"
The nightmare I got a day before,
Was full of science and plenty more,
The world of progress that we think of tonight,
The robots were working, it was a dreadful night.
It was when the human were servants,
Robots were having bungalows or villas,
We were that time the only vagrants.
The humans were robots and the robots were humans,
They all were having parties and we were being summoned.
They were instructing us as if we were dolls,
But the reality was that it was they robotic dolls.
They were the ones we then pray to God,
The one who takes our ease and comfort and many more.
Suddenly, with a jerk of dream, I saw someone with spiritual rays,
I was unable to see the face but was feeling the sense of gaze.
The voice says," Oh my dear child, calm your mind and enjoy the note of nature".
I then opened my eyes to the end of this dreamy adventure.
In the morning dawn,
With the closet of bizarre dreams and an upset mind,
I woke up on the verge of a melancholic night.
Suddenly, I heard the crazy cries of birds,
It was so blissful that I can't express it within a few words.
Enjoying the subtlety of nature,
I realised the existence of each creature.
Praying to God I would never have such dream,
I started my routine work with an energising scream.
#review
#Cookie
#Nightmare
"Goodnight" and then I sleep. I spent the day with you and I plan on continuing so I keep you in my dreams. It feels magical. Almost surreal. This is what I've longed for. Even after you broke me, you never left my mind. Except this time you were a nightmare, not a dream
#review#nightmare#her#broken
Mi sono stancato di influencer e tiktoker vari, buoni solo a pietrificare l'attenzione verso cose futili.
#vaporonda#vaporwave#vapourwave#vaporart#seapunk#webpunk#glitch#glitchart#glitchartistscollective#chillwave#aesthetic#vaporwaveaesthetic#vaporwaveaesthetics#malinconia#melancholy#tristezza#sadness#sadboy#lofi#apparenza#appearance#appearance#illusione#illusion#incubo#nightmare