@yinghexiaozu · Post #716 · 13.12.2020 г., 16:40
#paulgraham 想他人所不能想,方成他人不能成之业。 http://www.paulgraham.com/think.html
Hashtags
TGINSIGHT SIMILAR POSTS
Изворен канал @pythonotes · Post #191 · 14 дек.
Как разделить строку с 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
Пребарај: #paulgraham
@yinghexiaozu · Post #716 · 13.12.2020 г., 16:40
#paulgraham 想他人所不能想,方成他人不能成之业。 http://www.paulgraham.com/think.html
Hashtags
@yinghexiaozu · Post #725 · 20.12.2020 г., 15:03
1️⃣Podcast Ads - 播客生存模式探索(上):这篇文章详细地介绍了播客的商业模式,包括播客行业的三大类广告,还有一些案例分析,值得一读。#播客#商业模式#广告 2️⃣梁孟松的 “标签”:半导体技术天才梁孟松在半导体行业(AMD、台积电、三星、中芯国际)的那些故事,目前,近七十岁的他在中芯国际追求人生理想。#梁孟松#芯片#AMD#台积电#中芯国际 3️⃣Electron 的 GitHub 主页:Electron 可以让你用前端技术(HTML、JS、CSS)构建跨平台的桌面应用,很多知名应用都是用 Electron 开发的,包括 VS Code、Notion、Slack、Discord、Spotify、WhatsApp、Atom、Raven、Typora、Xmind Zen,也可以从中学习到很多桌面开发的知识。#Electron#桌面开发#技术 4️⃣什么是 Serverless?:Serverless 作为一种技术趋势,允许用户编写和部署代码而无需担心底层基础设施,如数据库。#Serverless#技术趋势#Pass 5️⃣Billionaires Build:Paul Graham 最新的一篇博客,分享了他的思考:一个人如何成为亿万富翁,以及这些人的共同特质。#PaulGraham#创业 Automatically sent by Hardcore Bot v0.9.1