Как разделить строку с 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
В новом влоге 🇷🇺Team Spirit засветилась еще одна новинка от Zowie.
— Magixx назвал её OG-версией, возможно подразумевая обновлённую классику с улучшенными характеристиками
☕️
🟡Другие новинки: Парни упомянули, что у них на руках есть и другие невыпущенные мышки, которые еще не были анонсированы.
🟡Персональная модель для Sh1ro: Ходят слухи, что для Дмитрия так же выпустят обновленную модель.
🟡Именные девайсы для всей команды: Похоже, Zowie могут выпустить персональные девайсы для каждого игрока состава Team Spirit.
Интересно будет посмотреть, что в итоге выйдет. Ждем ⏰
САЙТ • МЕНЕДЖЕР • #ZOWIE
На вчерашнем матче Donk🇷🇺 был замечен с новой мышкой. Причем не просто новой для него, а именно с не анонсированной моделью от Zowie🤔
❗️Из интересного, у мыши отсутствуют боковые кнопки. Это кажется странным для современного рынка, но многим игрокам такая особенность нужна для лучшего контроля. Для Данила это, скорее всего, именно то, что он искал. Учитывая его специфический хват, который сформировался за годы игры (ладонь почти полностью лежит на корпусе) Можно предположить, что при таком хвате, не просто использование, а даже наличие боковых кнопок может банально мешать удобству и мелкому контролю.
❗️Форма мышки взята от существующей модели U2 и есть предположение что это ее уменьшенная версия — U3.
— Но пошла ли обновка Данилу на пользу? Загадка. Так как вчера был его 3 худший матч в карьере (1.10 рейтинг📉).
А пока ожидаем подробности, вы можете приобрести одну из существующих моделей у нас на сайте 👉ReShip.pro
САЙТ • МЕНЕДЖЕР • #ZOWIE
🍟Новая линейка белых мышекZOWIE DW GLOSSY
Доступные модели:
🔴EC-DW (все размеры)
🔴S2-DW
🔴U2-DW
🔴ZA-13
🔴FK2-DW
— Сейчас их быстро разбирают — уточняйте наличие у менеджеров во избежание возвратов @reshipmng
💸Добавлены на сайт Под заказ со скидкой 7%
САЙТ • МЕНЕДЖЕР • #ZOWIE
✔️Коврик, который выбирают профессионалы — Zowie G-SR-SE
- Поверхность с плавным скольжением и стабильным контролем для точных движений
- Стойкость к влаге обеспечит одинаковую скорость в любым условиях
- Бесшовные края исключают царапание руки и обеспечивают комфорт
- Средняя мягкость резиновой подложки придает отличные тормозящие свойства для максимальной точности
Принт коврика никак не повлияет на скорость глайда и не испортится со временем 😉
💵Цена 5.490₽
ОФОРМИТЬ ЗАКАЗ • КАТАЛОГ • #ZOWIE