Как разделить строку с 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
Вместе - хоть в космос !
Сегодня у нас митап.
Это всегда особенный день.
Мы очень готовимся и стараемся.
И хочется не просто повторить успех предыдущих встреч, а сделать ещё больше — в содержании, в атмосфере, в настоящем обмене энергией.
В этот раз мы выбрали нашу любимую тему — команды.
Будем вместе размышлять: каким должен быть идеальный лидер сегодня?
И познакомимся с подходом, который считаем особенно актуальным — вдохновляющее лидерство.
Очень рады, что приглашение выступить перед нашим сообществом принял Сергей Кондаков, генеральный директор Tom Tailor.
Настоящий практик и вдохновляющий лидер!
А ещё — в апреле День космонавтики. А где, как не в космосе, самые сплочённые команды?
Поэтому мы получили официальное разрешение от Роскосмоса на выступление действующего космонавта Дмитрия Петелина, а
наш VI Meet Up Фактор Лидера назвали:
“Вместе — хоть в космос! От команды звезд к звездной команде”.
Сегодня вечером мы ждём наших гостей.
Мест уже нет — SOLD OUT!
Если вам интересно принимать участие в наших митапах в будущем — ставьте + в комментариях или пишите в личку.
Будем рады расширять наше пространство доверия и развития.
#MeetUp
Просвирякова: Дневник Развития Бизнеса
В преддверии нашего 7-го #MeetUp в апреле хочется использовать по максимуму каждый день и заполнять свое окружение интересными и коммуникативными людьми 👥
Наверняка вы уже заметили, что моя главная ценность в людях, поэтому я отдаю много внимания своим коллегам, клиентам, качеству нашего общения.
И для вас стараюсь предлагать только проверенные контакты ✔️
В этот раз делюсь с вами полезными каналамина темы маркетинга, финансов, здоровья и психологии и т.д. Все, чем интересуюсь я сама!
Только проверенные авторы и польза здесь https://t.me/addlist/3rl5nspZWRU1YmQy📍