Maison >développement back-end >Tutoriel Python >Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

王林
王林avant
2023-04-12 10:55:071339parcourir

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

La raison pour laquelle le langage Python est devenu populaire ces dernières années est que nous pouvons l'utiliser pour écrire moins de code pour implémenter des fonctions complexes. La communauté des développeurs Python accueille favorablement les boîtes à outils qui encapsulent des implémentations complexes mais qui sont conviviales.

Cependant, la simplicité de Python ne s’arrête pas là. Pouvez-vous croire que nous pouvons utiliser Python sans écrire de code ? Dans l'article suivant, je présenterai 8 exemples d'utilisation des fonctionnalités intégrées de Python sans écrire de code.

1. Paramètre Python CLI « -m »

Commençons par la Python CLI (Command Line Interface). Bien que nous n'ayons pas besoin d'écrire du code pour utiliser les fonctionnalités décrites plus loin, pour que Python sache ce que nous voulons exécuter, nous devons le faire en utilisant la ligne de commande Python.

Tant que l'environnement Python est installé sur notre ordinateur, nous pouvons saisir python --help dans l'interface de ligne de commande Python pour afficher tous les paramètres pris en charge.

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Le résultat de la commande étant trop long, seule une partie du contenu est affichée dans l'image ci-dessus. La chose la plus importante à souligner ici est le paramètre -m mod, qui exécutera le module Python en tant que script. Par conséquent, si l’implémentation du module prend en charge les opérations en ligne de commande, nous pouvons l’utiliser directement depuis la ligne de commande. Ensuite, faisons-en l'expérience :)

2. Test du port de service

Parfois, nous souhaitons tester le trafic réseau sortant du port IP, généralement la commande telnet est un bon choix. Le logiciel Telnet n'est pas installé par défaut sur les plates-formes Windows et doit être installé manuellement avant utilisation. S'il s'agit uniquement d'un simple test et qu'il n'y a pas beaucoup de scénarios d'utilisation futurs, l'installer peut être un gaspillage de ressources.

Cependant, si Python est installé, il n'est pas nécessaire de télécharger et d'installer telnet, car Python possède un module intégré correspondant à telnet. Nous pouvons tester le port 443 du site de recherche Google.

python -m telnetlib -d 142.250.70.174 443

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Comme vous pouvez le voir sur l'image ci-dessus, le trafic réseau semble normal et nous avons même reçu une réponse nulle de Google. Si nous essayons d'accéder à un port aléatoire de l'adresse IP, une erreur sera générée comme indiqué dans l'image ci-dessous.

python -m telnetlib -d 142.250.70.174 999

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

3. Démarrez le service Web localement

De nombreux utilisateurs de Python ne le savent pas et seront surpris lorsqu'ils l'entendront pour la première fois. Oui, nous pouvons démarrer un service Web en utilisant Python sans écrire de code, exécutez simplement la commande suivante sur la ligne de commande comme suit.

python -m http.server

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Après l'exécution, cela montre que le service écoute le port local 8000. Ensuite, nous pouvons essayer d'accéder à http://localhost:8000/ depuis le navigateur.

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Le service Web affichera le système de fichiers local sous le chemin de démarrage de la commande comme répertoire racine. En d'autres termes, nous ne pouvons pas accéder à son répertoire parent.

Vous vous demandez peut-être quel est le scénario d'utilisation de cette fonction. Par exemple, si vous souhaitez partager de nombreux fichiers texte/PDF/image/fichiers de sous-répertoire dans un certain répertoire de votre ordinateur avec vos bons amis, vous pouvez les partager très facilement en utilisant cette méthode.

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

Si vous souhaitez en savoir plus sur ce sujet, vous pouvez vous référer à l'article 3 lignes de code Python pour écrire un serveur Web. Si vous suivez l'article ci-dessus pour implémenter une solution « low-code », vous pouvez alors y ajouter davantage de fonctionnalités personnalisées.

4. Valider et formater les chaînes JSON

Si vous avez une chaîne JSON très longue et non formatée, elle sera très difficile à lire. Généralement, j'utilise un éditeur de texte avec un plugin JSON, tel que Sublime ou VS Code, pour formater les chaînes JSON. Cependant, si vous ne disposez pas de ces outils, Python peut être utilisé temporairement. Par exemple, cette courte chaîne JSON sera affichée ci-dessous.

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

现在,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 只有执行保存的情况下才会创建到本地。现在应该会弹出编辑器,我们可以在里面写一些代码, 可以看到代码是支持语法高亮的。

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

cat get_time_app/print_time.py

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

6. 创建可执行应用程序

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

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

python get_time_app.pyz

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

echo "I am Chris" | python -m base64

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

python -m base64 get_time_app/print_time.py

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

8. 获取系统元数据

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

python -m sysconfig

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

python -m site

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

9. 文件压缩

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

python -m zipfile -c get_time_app.zip get_time_app

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

当然,我们也可以对压缩文件进行解压。紧接这上面的操作,我们把文件夹解压出来放到一个新目录中,这样就不会和原来的目录冲突了。在下面的命令中,选项 -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

Huit façons d'utiliser les bibliothèques intégrées de Python sans écrire de code

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

总结

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer