Heim  >  Artikel  >  Backend-Entwicklung  >  Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

王林
王林nach vorne
2023-04-12 10:55:071276Durchsuche

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Die Python-Sprache ist in den letzten Jahren populär geworden, weil wir damit weniger Code schreiben können, um komplexe Funktionen zu implementieren. Die Python-Entwicklergemeinschaft begrüßt Toolkits, die komplexe Implementierungen kapseln, aber benutzerfreundlich sind.

Die Einfachheit von Python endet hier jedoch noch nicht. Können Sie glauben, dass wir Python verwenden können, ohne Code schreiben zu müssen? Im folgenden Artikel werde ich 8 Beispiele für die Verwendung der integrierten Python-Funktionen vorstellen, ohne Code schreiben zu müssen.

1. Python-CLI-Parameter „-m“

Beginnen wir mit der Python-CLI (Befehlszeilenschnittstelle). Wir müssen zwar keinen Code schreiben, um die später beschriebenen Funktionen zu nutzen, aber damit Python weiß, was wir ausführen möchten, müssen wir dies über die Python-Befehlszeile tun.

Solange die Python-Umgebung auf unserem Computer installiert ist, können wir python --help in die Python-Befehlszeilenschnittstelle eingeben, um alle unterstützten Parameter anzuzeigen.

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Da die Befehlsausgabe zu lang ist, wird im obigen Bild nur ein Teil des Inhalts angezeigt. Das Wichtigste, was hier hervorzuheben ist, ist der Mod-Parameter -m, der das Python-Modul als Skript ausführt. Wenn die Implementierung des Moduls Befehlszeilenoperationen unterstützt, können wir es daher direkt über die Befehlszeile verwenden. Als nächstes lassen Sie es uns erleben:)

2. Service-Port-Test

Manchmal möchten wir den ausgehenden Netzwerkverkehr des IP-Ports testen, normalerweise ist der Telnet-Befehl hilfreich Auswahl. Die Telnet-Software ist auf Windows-Plattformen nicht standardmäßig installiert und muss vor der Verwendung manuell installiert werden. Wenn es sich nur um einfache Tests handelt und es nicht viele zukünftige Nutzungsszenarien gibt, kann die Installation eine Verschwendung von Ressourcen sein.

Wenn jedoch Python installiert ist, ist es nicht erforderlich, Telnet herunterzuladen und zu installieren, da Python über ein integriertes Modul verfügt, das Telnet entspricht. Wir können Port 443 der Google-Suchseite testen.

python -m telnetlib -d 142.250.70.174 443

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Wie Sie im Bild oben sehen können, scheint der Netzwerkverkehr normal zu sein und wir haben sogar eine Nullzeichen-Antwort von Google erhalten. Wenn wir versuchen, auf einen zufälligen Port der IP zuzugreifen, wird ein Fehler ausgegeben, wie im Bild unten gezeigt.

python -m telnetlib -d 142.250.70.174 999

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

3. Starten Sie den Webdienst lokal

Viele Python-Benutzer wissen das nicht, wenn sie zum ersten Mal davon hören Sie werden später überrascht sein. Ja, wir können einen Webdienst mit Python starten, ohne Code schreiben zu müssen. Führen Sie einfach den folgenden Befehl wie folgt in der Befehlszeile aus.

python -m http.server

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Nach dem Ausführen wird angezeigt, dass der Dienst den lokalen Port 8000 abhört. Anschließend können wir versuchen, von http://localhost aus darauf zuzugreifen der Browser :8000/.

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Der Webdienst wird im lokalen Dateisystem unter dem Befehlsstartpfad in Form eines Stammverzeichnisses angezeigt auf das übergeordnete Verzeichnis zugreifen.

Sie fragen sich vielleicht, was die Einsatzszenarien dieser Funktion sind. Wenn Sie beispielsweise viele Text-/PDF-/Bilddateien/Unterverzeichnisdateien in einem bestimmten Verzeichnis auf Ihrem Computer mit Ihren guten Freunden teilen möchten, können Sie diese mit dieser Methode ganz einfach teilen.

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Wenn Sie mehr über dieses Thema erfahren möchten, können Sie sich den Artikel 3 Zeilen Python-Code zum Schreiben eines Webservers ansehen. Wenn Sie dem obigen Artikel folgen, um eine „Low-Code“-Lösung zu implementieren, können Sie weitere benutzerdefinierte Funktionen hinzufügen.

4. JSON-Strings validieren und formatieren

Wenn Sie einen sehr langen und unformatierten JSON-String haben, ist dieser sehr schwer zu lesen. Normalerweise verwende ich einen Texteditor mit einem JSON-Plugin, wie Sublime oder VS Code, um JSON-Strings zu formatieren. Wenn Sie diese Tools jedoch nicht zur Hand haben, kann Python vorübergehend verwendet werden. Diese kurze JSON-Zeichenfolge wird beispielsweise unten angezeigt.

echo '{"name": {"first_name":"Chris", "last_name":"Tao"} "age":33}'

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

可以看到,当前操作系统的命令行工具只能按照原字符串的原始格式进行展示。但是,如果借助 Python 的 json.tool工具,JSON 字符串就会被很好的格式化。

echo '{"name": {"first_name":"Chris", "last_name":"Tao"} "age":33}' | python -m json.tool

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

Oops!JSON 字符串无效,并且 json.tool 帮助我们定位了问题。我们在名称对象后面漏掉了一个逗号。所以添加逗号以使该 JSON 合法有效。

echo '{"name": {"first_name":"Chris", "last_name":"Tao"}, "age":33}' | python -m json.tool

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

现在,JSON 字符串具有了完美缩进的格式化输出!更加方便阅读。

5. 创建文本编辑器

你没看错,我们可以使用 Python 来”创建”一个文本编辑器。当然,它的功能非常有限,但是如果当前没有更好的选择,使用它会方便很多。另外,功能上肯定无法与 Vim 和 Nanos 相比,但是它完全是基于 UI 编辑器而不是命令行文本形式。这个编辑器由基于 Tkinter 实现的idlelib 模块创建,所以它是可以跨平台运行的。

假设我们要编写一个简单的 Python 程序来显示当前的时间,我想快速编写代码而不想下载和安装庞大的代码编辑工具。现在让我们运行下面这个命令。

mkdir get_time_apppython -m idlelib get_time_app/print_time.py

如果文件目录不存在,idlelib将无法创建,因此如果必要,我们需要创建一个。我们运行完这个命令之后,print_time.py 只有执行保存的情况下才会创建到本地。现在应该会弹出编辑器,我们可以在里面写一些代码, 可以看到代码是支持语法高亮的。

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

现在我们使用ctrl+s快捷键对编辑好的代码进行保存,并关闭编辑窗口。接下来使用命令行查看一下编辑好的代码文件进行验证,没有任何问题。

cat get_time_app/print_time.py

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

6. 创建可执行应用程序

如果我们想要创建一个简单的应用,比如前面写的获取当前时间的应用程序,我们不必再需要像 PyInstaller 这样的第三方工具包,Python 内置的 Zipapp 就可以做到。假设我们要打包成一个"Get Time"的应用,我们可以在命令行运行下面的命令。

python -m zipapp get_time_app -m "print_time:main"

在该命令中,我们只需要给 zipapp设置get_time_app名称,指定 Python 程序的入口文件及其程序入口函数即可。以.pyz为扩展名的文件就是我们创建的应用程序,至此我们就可以将项目作为单个文件而不是文件夹进行分发。

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

该程序的启动方式也很简单,直接使用 Python 进行调用即可。

python get_time_app.pyz

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

7. 编码和解码字符串或文件

通过 Python CLI,我们可以加密字符串或文件。我们以有趣的 ROT13 加密算法为例进行展示。ROT13 是一种偏移 13 位的凯撒密码,它的加密原理如下图所示。

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

我们可以使用 encodings.rot_13 来加密一个字符串,命令如下。

echo "I am Chris" | python -m encodings.rot_13

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

切记,不要将其用于任何真正的加密内容。因为英文有 26 个字母,所以再次运行这个算法我们可以很容易地破译这个加密字符串:)

echo 'V nz Puevf' | python -m encodings.rot_13

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

现在让我们尝试一个更常见的场景——base64 编码。我们可以对字符串进行 base64 编码,如下所示。

echo "I am Chris" | python -m base64

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

接下来,我们也可以使用-d参数对加密字符串进行解码。

echo "SSBhbSBDaHJpcwo=" | python -m base64 -d

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

base64 也经常用在对图像文件的编码和解码上。我们也可以对文件进行如下编码。

python -m base64 get_time_app/print_time.py

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

非常有趣的是,解码后的 Python 脚本可以即时执行,不会报错。。

echo "ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKCgpkZWYgbWFpbigpOgogICAgY3VycmVudF90aW1lID0gZGF0ZXRpbWUubm93KCkKICAgIHByaW50KGYnQ3VycmVudCB0aW1lIGlzIHtjdXJyZW50X3RpbWV9LicpCgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIG1haW4oKQo=" | python -m base64 -d | python

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

8. 获取系统元数据

如果我们想获取当前的系统信息,Python 提供了一种非常简便的方法。我们只需要运行下面的命令即可。

python -m sysconfig

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

可以看到,这个命令执行后会显示所有的系统配置信息,比如 Python 环境路径和环境变量等。上面的截图仅仅展示了一部分内容,实际显示的内容会非常丰富。如果我们只想展示 Python 环境路径和当前工作路径,我们可以执行下面的命令。

python -m site

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

9. 文件压缩

我们可以使用 Python 来压缩文件,而无需下载 tar/zip/gzip 等工具。举个例子,如果我们想压缩我们刚刚在第 4 节中编写的应用程序,我们可以运行以下命令将文件夹压缩到 zip 文件中。在命令中,选项 -c 代表的是“create”即创建的含义。

python -m zipfile -c get_time_app.zip get_time_app

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

当然,我们也可以对压缩文件进行解压。紧接这上面的操作,我们把文件夹解压出来放到一个新目录中,这样就不会和原来的目录冲突了。在下面的命令中,选项 -e 代表“extract”即解压的含义。

python -m zipfile -e get_time_app.zip get_time_app_extracted

如果不放心,我们可以检验一下。

ls get_time_app_extractedcat get_time_app_extracted/get_time_app/print_time.py

Acht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen

我们刚刚以 zip 文件为例进行了展示,Python 除了支持 zip 格式的解压缩以外,还支持 tar 和 gzip 的解压缩。

总结

该篇文章中介绍了一种无需编写任何代码即可使用 Python 内置库的方法。如果在某些场景下能够想到使用这些方法,毫无疑问可以给我们提供很多的便利。希望这篇文章能够给大家带来启发和帮助。

Das obige ist der detaillierte Inhalt vonAcht Möglichkeiten, die integrierten Python-Bibliotheken zu nutzen, ohne Code schreiben zu müssen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen