Как разделить строку с 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
🤴Мы запускаем DYOR Tips.
ℹ️DYOR Tips- это цикл публикаций, которые ближе познакомят пользователей с нашими основными продуктами, расскажут о том, как ими можно пользоваться и почему они могут быть полезны в применении.
🔜 Первая публикация о главной странице DYOR.io и её возможностях выйдет уже в эту субботу.
🔥В честь этого мы запускаем небольшой интерактив для наших пользователей, в котором вам нужно будет предложить какую-нибудь интересную фичу, которую мы можем внедрить на главной странице нашего сайта, в один из наших чатов с хэштэгом #homepage
DYOR.io Chat (EU)
DYOR.io Чат (RU)
🎤 Мы будем принимать ваши предложения до 28 сентября этого года, после чего соберём их все, рассмотрим на предмет целесообразности и выберем из них три наиболее интересных и полезных.
💎 Их авторов мы наградим нашим DYOR coin:
🥇 За 1 место - 7 $DYOR
🥈 За 2 место - 5 $DYOR
🥉 За 3 место - 3 $DYOR
✏️ Дерзайте!
Сайт • Чат • 𝕏 • Поддержка
Начнем с рассмотра главной страницы сайта asb-video.ru
Логотип компании, кнопка вызова по телефону, оператор в телеграме и кнопка меню расположились в верхней части экрана мобильного устройства.
Далее нас встречает баннер, который в будущем может превратиться в слайдер акций, скидок или нового проекта.
Ниже нас будут ждать типовые решения для дома, офиса, склада, магазина или квартиры, которые
ООО «АСБ» может предложить для вашего видеонаблюдения.
После типовых решений нас ждёт уникальное целевое действие.
Интерактивным интерфейсом мы заинтересуем посетителей сайта воспользоваться калькулятором подсчёта сметы персональной
системы видеонаблюдения.
Для этого необходимо ввести два значения с помощью клавиатуры — количество помещений и общую площать вашего объекта.
Я придумал систему просчёта количества необходимого оборудования для не сложной среднестатистической системы.
По кнопке ниже калькулятора мы перейдём к просчитанной смете
и сможем ознакомиться
с составом автоматически подобранного решения.
Внизу экрана мобильного устройства вы всегда сможете увидеть кнопки главной, каталога, калькулятора, контактов и кабинета технической поддержки.
В следующем посте мы рассмотрим меню сайта.
#asb#mobile#uxui#design#asbvideoru#homepage
www.asb-video.ru
#vue#awesome#dashboard#docker#hacktoberfest#homelab#homepage#mit#nodejs#organization#productivity#pwa#self_hosted#startpage#vue
Dashy is a free, open-source dashboard that lets you organize and access all your self-hosted services, apps, and web links from one central place, making it easy to manage and monitor everything you use regularly[1][2][4]. It comes with over 50 pre-built widgets for things like system monitoring, news, weather, and productivity, and you can customize the look and layout with themes, icons, and different views[4][5]. The main benefit is that Dashy saves you time and hassle by giving you a single, user-friendly page to launch and check on all your important services, with features like instant search, status indicators, and multi-language support[4][5].
https://github.com/Lissy93/dashy