"); //-->
作者: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
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。