"); //-->
作者:Shalitha Suranga
翻译:闫晓雨
校对:赵茹萱
编程语言在抵达不同的开发者社区时通常会变得更流行。例如,JavaScript因Electron框架而变得更流行,它允许开发人员使用Web前端构建桌面应用程序。Python也尝试通过Python开发者社区中的令人印象深刻的创新打入新的开发者社区。 现在我们可以使用Python来构建类似JavaScript的任何东西。然而,大多数开发人员仍然没有意识到这些优秀的基于Python的创新。在这个故事中,我将讲解几个鲜为人知的Python用例。尝试将Python应用于以下用例,并帮助Python更受欢迎吧。 用Python创建移动应用程序
如今,Dart和JavaScript语言是最受青睐于构建跨平台的移动应用程序。换句话说,Flutter和React Native主导着移动应用开发市场。但是,是否所有Python程序员都必须学习Dart或JavaScript才能编写移动应用程序?不——Kivy GUI框架(https://github.com/kivy/kivy)已经可以为Android和iOS平台生成原生应用程序。
因此,您可以使用Python构建跨平台的移动应用程序。
Kivy自带类似于Flutter的小部件工具包。Kivy使用SDL(Simple DirectMedia Layer)(https://github.com/libsdl-org/SDL)在Android和iOS上渲染2D元素,就像Flutter使用Google Skia(https://github.com/google/skia)一样。Kivy通过Android上的JNI/Cython和iOS上的Objective-C/Cython与原生移动API进行通信。 与其他移动框架一样,Kivy也提供工具链来制作特定于平台的应用程序包。此外,您可以在桌面操作系统上运行Kivy应用程序。Google Play和Apple App Store接受基于Kivy的应用程序(https://github.com/kivy/kivy/wiki/List-of-Kivy-Projects)。如果许多开发者开始使用Kivy构建他们的应用程序,它无疑可与Flutter和React Native争锋。 在浏览器上运行Python
Python解释器通常在操作系统上运行。如何在Web浏览器上运行Python?通常认为,必须在远程服务器上托管Python解释器实例并通过WebSocket协议进行通信。是的——这就是大多数在线Python解释器所做的。但现在,您可以在浏览器上用Pyodide(https://github.com/pyodide/pyodide)单纯从客户端运行任何Python模块。Pyodide通过Emscripten运行CPython的WebAssembly版本。浏览器的WebAssembly实现通常提供类似CPU的虚拟执行环境。 Emscripten WebAssembly编译器也支持虚拟内存文件系统。因此,我们也可以在浏览器上运行Python文件系统API模块。请参阅以下代码片段——它将在浏览器上运行。
console.log(pyodide.runPython(` import os os.makedirs('dir/test') print(os.listdir('dir')) `));['test']
import js js.alert('Hello JavaScript!') # js module refers to window :)但是,您不得不在Python相比于在Bash中写更多的代码才能处理进程。ShellPy(https://github.com/lamerman/shellpy)项目为这个问题提供了一个优秀的解决方案。ShellPy允许您使用Python编写类似Bash的自动化脚本。看下面的例子吧。
#!/usr/bin/env shellpyprint('Hello ShellPy')`echo "Hello" > test.txt cat test.txt ` 正如您已经注意到的,您可以在同一个ShellPy脚本文件中运行Bash命令和Python片段。您可以使用Python处理数据,并且依然使用Bash来生成进程。很棒的是,您可以直接将Bash命令输出到一个Python变量。尝试使用ShellPy用干净简单的Python代码编写您的下一个自动化脚本吧。 构建Pythonic混合桌面应用程序基于Electron的应用程序通常在后端使用Node.js代码。但是,Python程序员可以通过以下两个项目为Electron应用程序后端编写Python代码:python-gui-electron(https://github.com/keybraker/python-gui-electron)和electron-python-example(https://github.com/fyears/electron-python-example)。
我们都知道,Electron由于嵌入式Chromium和Node.js的开销而经常产生膨胀软件。作为替代方案,您可以使用Eel(https://github.com/ChrisKnott/Eel)框架编写基于Python的混合应用程序,并将它们作为Chrome/Chromium应用运行。Eel使用WebSocket连接在Python和Chrome之间创建了一个通信通道——允许您为应用程序后端编写Python代码。
此外,您可以使用Python后端使用Neutralinojs构建轻量级和可移植的混合桌面应用程序。 用Python以创纪录的速度构建CLI程序
当我们为框架和库制作开发工具时,必须构建CLI应用程序。例如,Flutter团队创建了Flutter CLI来管理和配置Flutter应用程序。我还为我维护的框架创建了一个基于Node的CLI程序(https://github.com/neutralinojs/neutralinojs-cli)。此外,我们可以将我们的自动化脚本转换为CLI程序以增强可用性。例如,您可以在向脚本发送特定命令时触发特定操作或进程。
大多数程序员使用Node.js来构建带有流行的Node模块的CLI程序,例如command.js、ink、oclif和chalk。像commander.js这样的库提供了高效的可链接方法API来更快地构建CLI程序。 Google Open Source的PythonFire(https://github.com/google/python-fire)项目为您提供了一种使用Python开发CLI程序的更高效的方法。PythonFire根据函数定义和参数自动生成CLI结构。此外,您可以使用此库在创纪录的时间内将现有的自动化脚本转换为CLI程序。编写以下代码后:
import fire您可以使用以下命令调用这两个函数。
def add(a, b): return a + b
def sub(a, b): return a – b
if __name__ == '__main__': fire.Fire()
./cli.py add 10 5 ./cli.py sub 5 2
抱歉Java,Write Once Run Anywhere (WORA)现在是JavaScriptJava以该口号启程:一次编写,随处运行。但现在,是JavaScript——不是你,Java。
Python是编程世界中下一个最大的游戏规则改变者。它是一种简单的通用语言,更适合处理数据。现在,Python慢慢进入移动应用和混合应用开发。我们还无法预测哪个会在WORA的角逐中表现更好。2022年,让我们拭目以待!
感谢阅读。
原文标题:
5 Python Use Cases That Only a Few Programmers Know
原文链接:
https://levelup.gitconnected.com/5-python-use-cases-that-only-a-few-programmers-know-35e25ddf13d4
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
AI聊天机器人能像医生一样推理吗?
基于Ai-WB2-12F与Rd-04的雷达检测系统
瑞萨电子AI单元解决方案成功提高GE医疗(日本)日野工厂的生产力
尼吉康的事业介绍
国家“算力网”:像用水用电一样用AI
被动元件新周期:AI时代高端化、服务器化重构MLCC产业格局
基于VisitionX制造智能眼镜
重新构想AI电源:塑造AI加速的未来(第三部分)
EEPW2018年6月刊(5G)
AI/HPC新世代 COUPE光互连扮要角
基于Microchip MCU的AI/ML培训教程2
AI催生“芯片通胀”:2D NAND价格失控,300%涨幅背后的行业博弈
海联达(Aigale)Ai-HD1 无线全高清套件拆解
WTC-AI太阳能热水器电路图
继上次海联达Ai-ap100拆机之电源改造
人工智能是如何帮助阻止造假者的?
联发科加速AI在地化应用布局
研华科技与Axelera AI深化战略合作 加速推动基于Europa平台的边缘AI创新
基于Microchip MCU的AI/ML培训教程1
存储器转型AI战略资源 台厂受惠
基于Microchip MCU的AI/ML培训教程3
电子元件培训教材
万家乐JSYZ5-AI燃气热水器电路图
PowiGaN for AI Data Centers: Unmatched Power Density and Reliability
EEPW2018年3月刊(工业物联网)
CSR8670CSR8675智能语音Alexa蓝牙方案开发
释说芯语16:硬科技:构建企业未来之路(附PPT)
思科凭借通用商用芯片与光模块赢得 AI 领域客户
iCAN-4017 AI功能模块
WTC-AI型太阳能热水器电路图