Maison > développement back-end > Tutoriel Python > Pourquoi devriez-vous repenser votre boîte à outils Python en 5

Pourquoi devriez-vous repenser votre boîte à outils Python en 5

DDD
Libérer: 2025-01-26 06:10:12
original
478 Les gens l'ont consulté

Why You Should Rethink Your Python Toolbox in 5

Améliorez votre boîte à outils Python 2025: Explorez la bibliothèque importante que vous avez manquée

Cet article a été initialement publié ici:

https://www.php.cn/link/00bd13095d06c20b11a2993ca419d16b

Python est puissant, mais vos outils peuvent faire de vous un Dieu de programmation et vous causer des ennuis. Ne devenez pas les développeurs qui utilisent toujours des outils obsolètes, et d'autres parties du monde se développent rapidement.

De nombreux développeurs comptent encore sérieusement sur les pandas, les demandes et les belles, mais ce ne sont pas les solutions les plus efficaces pour la demande de développement moderne. Dans cet article, nous explorerons quelques nouvelles bibliothèques Python en 2025. Ces bibliothèques amélioreront votre processus de développement et vous aideront à maintenir une position de premier plan.

a) ancienne bibliothèque et meilleure alternative

Abandonnez le système d'exploitation pour le fonctionnement du fichier: utilisez Pathlib

  1. Le module OS est généralement lourd en termes de fichiers et de traitement des chemins, car il a des problèmes tels que des segments de chemin et une longue grammaire tels que des chemins spécifiques à la plate-forme. Pathlib simplifie cela à travers la méthode orientée vers l'objet intuitif (comme ,
  2. et
) utilisé pour vérifier le chemin, ce qui simplifie ce point, réalisant ainsi la compatibilité de la plate-forme croisée sans couture. Avec sa grammaire plus simple et sa fonction construite, Pathlib élimine les besoins de l'ajustement manuel et est devenu la première solution de choix pour les développeurs Python modernes.

/ Exemple: .exists() .is_file()

Pourquoi voulez-vous changer? Pathlib facilite la vie. Il est plus intuitif que le système d'exploitation, en utilisant des méthodes orientées objet pour traiter les fichiers et les chemins. Vous n'avez pas à vous soucier des problèmes spécifiques à la plate-forme (tels que

et
<code class="language-python">from pathlib import Path

# 创建文件
file = Path("example.txt")
file.write_text("Hello, Pathlib!")

# 读取文件
print(file.read_text())

# 检查是否存在
if file.exists():
    print("File exists")</code>
Copier après la connexion
Copier après la connexion
), car PathLib s'occupera de vous pour vous. De plus, la grammaire est plus concise et facile à lire.

Pour les petits projets, ce n'est pas un outil pour modifier les règles du jeu, mais pour tout grand projet, c'est certainement une direction.

/ Remplacez les demandes par HTTPX: Client HTTP moderne utilisé pour les demandes asynchrones et synchronisées

httpx est devenu une alternative puissante aux demandes, en particulier en 2025. Contrairement aux demandes, HTTPX fournit également la prise en charge de HTTP / 2, ce qui peut réduire considérablement les retards et améliorer le traitement des demandes en permettant des connexions de réutilisation multi-roues. HTTPX est une alternative moderne qui prend en charge les opérations asynchrones sans sacrifier la simplicité et la familiarité de l'API Demandes.
    Exemple:
  1. Pourquoi utiliser httpx?

Si vous développez des applications qui nécessitent une nature élevée et combinée (comme la capture de réseau ou les microservices), la prise en charge de HTTPX pour les opérations asynchrones peut améliorer considérablement les performances.

Un autre avantage clé de HTTPX est son pool de connexion par défaut pour chaque hôte, ce qui réduit le retard et la consommation de ressources.

<code class="language-python">import httpx
import asyncio

# asyncio用于启用异步编程,对于httpx的非阻塞HTTP请求来说是不可或缺的。
# 使用httpx,你可以使用async/await语法同时运行多个HTTP请求。


# 演示使用httpx的异步请求
async def async_get_data():
    async with httpx.AsyncClient() as client:
        response = await client.get('https://jsonplaceholder.typicode.com/posts/1')
        if response.status_code == 200:
            print("Async Response:", response.json())
        else:
            print(f"Error: {response.status_code}")

# 运行异步请求
asyncio.run(async_get_data())

# 使用httpx的异步HTTP/2请求
async def async_http2_request():
    async with httpx.AsyncClient(http2=True) as client:
        response = await client.get('https://http2.golang.org/reqinfo')
        if response.status_code == 200:
            print("HTTP/2 Response:", response.text)
        else:
            print(f"Error: {response.status_code}")

# 运行HTTP/2请求
asyncio.run(async_http2_request())

# 使用httpx客户端进行连接池
def connection_pooling_example():
    with httpx.Client(keep_alive=True) as client:
        url = "https://jsonplaceholder.typicode.com/posts/1"
        # 使用连接池进行多次请求
        for _ in range(5):
            response = client.get(url)
            if response.status_code == 200:
                print("Response Content:", response.text)
            else:
                print(f"Error: {response.status_code}")

# 运行连接池示例
connection_pooling_example()</code>
Copier après la connexion
Copier après la connexion
Fondamentalement, si vous gérez beaucoup d'E / S, HTTPX vous évitera beaucoup de problèmes.

  1. au-delà des pandas: utilisez des polaires
Les pandas conviennent très pour les ensembles de données de petite à moyenne, mais lorsque vous ajoutez un ensemble de données plus important, l'utilisation de la mémoire et les performances commencent à diminuer.

, comme la difficulté de consommation de mémoire, de faible efficacité de fonctionnement et de conversion des données (tels que

et .fillna()), c'est un problème que de nombreux développeurs qui utilisent les pandas rencontrent souvent. .loc

Polaires est une bibliothèque de traitement des données moderne et à haute efficacité et multi-thread, qui fournit une alternative plus rapide aux grands ensembles de données que les pandas. Contrairement aux pandas, Polar prend en charge le traitement parallèle, qui accélère la vitesse des tâches de fonctionnement des données.

Exemple:

Pourquoi utiliser des polaires?
<code class="language-python">from pathlib import Path

# 创建文件
file = Path("example.txt")
file.write_text("Hello, Pathlib!")

# 读取文件
print(file.read_text())

# 检查是否存在
if file.exists():
    print("File exists")</code>
Copier après la connexion
Copier après la connexion

Par conséquent, si vous avez affaire à un traitement de données à grande échelle, vous devez effectuer une exécution parallèle ou vouloir une solution efficace pour la mémoire, alors Polar est le meilleur choix pour la science et l'analyse des données modernes. Les pandas sont peut-être votre premier amour, mais Polar est la personne qui peut gérer un travail lourd.

Améliorez votre jeu de test: utilisez PyTest pour remplacer unittest

  1. unittest? Bien sûr, c'est efficace, mais s'il vous plaît, maintenant c'est 2025. L'utiliser ne peut attirer personne. C'est comme essayer d'attirer quelqu'un avec un téléphone flip lorsque tout le monde utilise l'iPhone. Oui, c'est efficace, mais c'est complètement un problème. Pytest: Il s'agit d'un cadre de test moderne cool, ce qui facilite les tests d'écriture et de lecture. Qu'est-ce que l'unité?
Pour les personnes inconnues, Unittest est le cadre de test construit de Python, mais il fait souvent que les gens se sentent obsolètes, la grammaire est longue et le code du modèle est répété. Avec PYTEST, vous pouvez obtenir des fonctions puissantes, telles que la gestion flexible des fixations, la découverte automatique des tests et le paramétrage intégré (en utilisant

) pour utiliser facilement différentes entrées pour exécuter le même test. Il prend également en charge l'exécution des tests parallèles via PyTest-XDIST, qui améliore les performances de grands kits de test.

Exemple:

Pourquoi utiliser le test_? @pytest.mark.parametrize

En utilisant le préfixe , vous pouvez clairement indiquer à Pytest que ces fonctions devraient être testées. Cela fait partie de l'accord de Pytest, qui peut être trouvé et exécuté correctement sans aucune configuration supplémentaire.

En bref, Pytest a remplacé les paramètres maladroits de l'unité, ce qui rend le test plus efficace, plus flexible et évolutif.

<code class="language-python">import httpx
import asyncio

# asyncio用于启用异步编程,对于httpx的非阻塞HTTP请求来说是不可或缺的。
# 使用httpx,你可以使用async/await语法同时运行多个HTTP请求。


# 演示使用httpx的异步请求
async def async_get_data():
    async with httpx.AsyncClient() as client:
        response = await client.get('https://jsonplaceholder.typicode.com/posts/1')
        if response.status_code == 200:
            print("Async Response:", response.json())
        else:
            print(f"Error: {response.status_code}")

# 运行异步请求
asyncio.run(async_get_data())

# 使用httpx的异步HTTP/2请求
async def async_http2_request():
    async with httpx.AsyncClient(http2=True) as client:
        response = await client.get('https://http2.golang.org/reqinfo')
        if response.status_code == 200:
            print("HTTP/2 Response:", response.text)
        else:
            print(f"Error: {response.status_code}")

# 运行HTTP/2请求
asyncio.run(async_http2_request())

# 使用httpx客户端进行连接池
def connection_pooling_example():
    with httpx.Client(keep_alive=True) as client:
        url = "https://jsonplaceholder.typicode.com/posts/1"
        # 使用连接池进行多次请求
        for _ in range(5):
            response = client.get(url)
            if response.status_code == 200:
                print("Response Content:", response.text)
            else:
                print(f"Error: {response.status_code}")

# 运行连接池示例
connection_pooling_example()</code>
Copier après la connexion
Copier après la connexion

La bibliothèque qui mérite plus d'attention en 2025

  1. beeware for Cross -Platform Python Application Development
Beware est un cadre python émergent, en particulier en 2025, il mérite plus d'attention. Il permet aux développeurs Python d'utiliser la même bibliothèque de code pour écrire des applications natives sur plusieurs plates-formes (Desktop, Mobile, Web). Contrairement aux frameworks de bureau traditionnels tels que PYQT ou TKINTER, Beware a plus loin et prend en charge le déploiement sur Android, iOS et même WebAssembly. Une caractéristique clé de Beeware est sa fonctionnalité croisée, vous pouvez donc écrire une application une fois et l'exécuter n'importe où.

    pydontique pour la vérification des données
  1. La vérification des données peut être une chose amère. Pydontic est une bibliothèque Python qui vérifie et analyse les données en fonction des invites de type. Si vous traitez des données désordonnées ou peu fiables (telles que la réponse de l'API, la saisie ou la configuration de l'utilisateur), Pydontic peut garantir que vos données sont propres, structurées et erronées.

poésie pour la gestion des emballages et de la dépendance
  1. La poésie est un outil Python moderne pour une gestion facile de la dépendance et un emballage de projet.
Il utilise et

pour effectuer des versions pour s'assurer qu'elle peut être construite à plusieurs reprises et simplifie le processus de publication de PYPI. Il améliore la transparence des diagrammes de dépendance, ce qui en fait une alternative plus puissante que les anciens outils tels que PIP et Setuptools.

pyproject.toml Fastapi pour API moderne poetry.lock

  1. FastAPI est un framework Python haute performance, qui est généralement utilisé comme alternative au framework Flask ou Django REST pour construire des API. En raison de son évolutivité et de son efficacité, il convient très bien aux petits projets et aux grandes applications. FastAPI est mis en évidence car il intègre le type de Python pour indiquer la vérification des données et génère automatiquement des documents OpenAPI, de sorte que le développement est plus rapide et plus susceptible de faire des erreurs.
  2. asyncpg est utilisé pour les opérations de base de données

    asyncpg est un pilote de base de données postgresql asynchrone haute performance pour Python. Vous voulez faire une requête rapide dans votre application Python? D'accord, les appels de blocage lente ne rendront pas votre application aussi lente que vous utilisez toujours Internet. Contrairement aux bibliothèques de synchronisation traditionnelles telles que PSYCOPG2, AsyncPG utilise une programmation asynchrone pour optimiser le fonctionnement de la base de données sans bloquer d'autres tâches dans l'application.
  1. DuckDB est utilisé dans l'analyse de la mémoire

DuckDB est une base de données de mémoire rapide, qui vise à exécuter efficacement une analyse et des requêtes complexes. Contrairement aux bases de données traditionnelles telles que PostgreSQL, DuckDB utilise directement des données en mémoire, ce qui vous permet de traiter rapidement de grands ensembles de données sans serveur externe.
  1. L'idée finale
  2. En 2025, il est temps de considérer votre boîte à outils Python. Bien que les bibliothèques classiques telles que les demandes et les pandas aient leurs effets, les bibliothèques émergentes telles que HTTPX, Polar, Rich et DuckDB peuvent simplifier votre flux de travail.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal