Как разделить строку с 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
https://goo.gl/XT2vGj
Anaconda Enterprise 5 new capabilities include:
Integrated #data_science experience for the entire organization
Collaboration and reproducibility with JupyterLab and #Anaconda Project
One-click data science #deployment
Scalable architecture for on-premises and cloud deployments
http://www.aparat.com/v/Cjarf
Happy Asset Deployments With Webpack & Django by Scott Burns
Webpack
What is it?
What does it do?
Source transformations
Output
Why #Djangos collectstatic is not up to the job?
Must run after #deployment
Doesn't do all the things
Slow
Integration on both sides
Webpack bundle tracker to output build stats
Django #Webpack bundle loader to read those files
How to render links in templates.
Github actions dan foydalanib CI/CD qilish
Do'stlar, avvalgi mavzularimizda Windows server bilan to'g'ridan to'g'ri ishlab, .NET ilovalarimizni deploy qilishni ko'rib chiqdik. O'ylaymizki, siz CI/CD haqida eshitgansiz. Masalan, Heroku servislaridan deployment uchun foydalangansiz, esingizda bo'lsa u yerda CI/CD sozlamalari qilingan edi. Ya'ni github/gitlab/azuredevops ga push qilish orqali, loyihamiz avtomatik tarzda build -> test -> deploy -> run bo'lardi. Ushbu mavzuni kengroq o'rganishimiz uchun Abduvohid ustozni mahorat darsimizga taklif qildik.
Barchangizni ushbu mahorat darsida kutib qolamiz. Kirsangiz xursand bo'lamiz, kirmasangiz hafa bo'lish yo'q )
Sana: 5-mart, 20:00
Havola: Zoom
Speaker: Wahid Abduhakimov
#githubactions#deployment#cicd
.NET Uzbekistan Community
➖➖➖➖➖➖➖➖➖➖
Telegram | Instagram | Youtube
#go#containers#deployment#devops#docker#docker_compose#golang#hacktoberfest#kubernetes#orchestration#self_hosted
Uncloud lets you run and manage web apps across multiple servers (cloud, home, or bare metal) as easily as using Docker Compose, but with production features like zero-downtime updates, automatic HTTPS, and cross-machine scaling. It connects your machines into a secure, private network without needing a central control server, so there’s less to manage and no single point of failure. You keep full control of your infrastructure and data, avoid vendor lock-in, and get a simple, cloud-like experience without the complexity of Kubernetes.
https://github.com/psviderski/uncloud
Coblocks Secures $500K Funding
Coblocks has successfully raised $500K in funding as of December 4, 2024. The platform offers unified tooling, instant deployment, and seamless collaboration in one streamlined solution.
#Coblocks#Funding#Tech#Startup#Platform#Collaboration#Deployment#Innovation#Investment#Tools#Startups#InvestmentRound#FundingRound#Financing#Growth#Technology#Business#Software#Solutions#Digital