Как разделить строку с 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
Инвестиции для начинающих: с чего начать и как не попасться мошенникам?
Полный выпуск — на нашем Youtube канале
В этом выпуске спикер Дмитрий Сочин — эксперт по финансам, трейдер расскажет, с чего стоит начинать инвестору без опыта и как не стать жертвой обмана.
Каждый выпуск #FinPodcast — это практичные советы, свежие идеи и мотивация на пути к финансовой грамотности.
Слушайте, делитесь и становитесь финансово увереннее!
Инвестиции для начинающих: с чего начать и как не попасться мошенникам?
📹Смотрите полный выпуск по ссылке https://youtu.be/eXe-1lEzXB4?si=372Vof1jloHAhV4i
Гость — Дмитрий Сочин, эксперт по финансам и трейдер. Он поделится, как новичку грамотно начать инвестировать и как не стать жертвой обмана.
🎞Каждый #FinPodcast — это полезные рекомендации, новые идеи и вдохновение для развития вашей финансовой грамотности.
Не успели посмотреть предыдущие выпуски? Все они ждут вас на официальном YouTube-канале проекта FinGramota.
➡️Слушайте, делитесь и становитесь финансово увереннее!
Дорогие друзья❤️!
На нашем YouTube-канале Fingramota.kz вас ждут увлекательные подкасты с участием ведущих финансовых экспертов Казахстана. Сегодня вспомним, как правильно урегулировать задолженность по долгам и кредитам.
🎙Своими рекомендациями делится Дмитрий Акмаев, главный специалист проекта FinGramota.
Каждый эпизод #FinPodcast — это практичные советы, новые идеи и полезная информация для вашего финансового благополучия.
➡️Слушайте, делитесь и будьте финансово уверены!
ФИНАНСОВЫЕ ЦЕЛИ И ЗАДАЧИ. ЛИЧНЫЙ И СЕМЕЙНЫЙ БЮДЖЕТ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВАЯ ГРАМОТНОСТЬ И ИНВЕСТИЦИИ ДЛЯ ДЕТЕЙ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ИНВЕСТИЦИИ: С ЧЕГО НАЧАТЬ НОВИЧКУ И КАК НЕ СТАТЬ ЖЕРТВОЙ МОШЕННИКОВ?
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВЫЕ ПЛАНЫ НА НОВЫЙ ГОД
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
МФО И КОЛЛЕКТОРЫ: ПРАВА ЗАЕМЩИКОВ И ОБЯЗАННОСТИ СТОРОН
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ЦИФРОВЫЕ ИНФОРМАЦИОННЫЕ РЕСУРСЫ: ФАКТЧЕКИНГ И ВЫБОР ФИНАНСОВОГО ПРОДУКТА
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВОЕ МОШЕННИЧЕСТВО: ЦИФРОВЫЕ МЕТОДЫ, ФИШИНГ, ДИПФЕЙКИ, ШИФРОВАНИЕ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВОЕ МОШЕННИЧЕСТВО: КАК НЕ СТАТЬ ЖЕРТВОЙ?
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
КАК ПРАВИЛЬНО ВЫБРАТЬ КРЕДИТ И НА ЧТО ОБРАТИТЬ ВНИМАНИЕ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!