12 bibliothèques Python que tout le monde devrait connaître
Liste productive et utile de bibliothèques Python
Il existe des bibliothèques sournoises de python que peu de gens connaissent. Ces bibliothèques sont vraiment impressionnantes pour améliorer votre productivité quotidienne.
1- Commence
l'installation de pip commence
En ce qui concerne les interfaces utilisateur, la plupart des programmes Python commencent comme
des applications en ligne de commande, et beaucoup le restent. Il est logique d'
offrir à vos utilisateurs la meilleure expérience possible. Pour de tels programmes, les options sont spécifiées avec des arguments de ligne de commande, et la
bibliothèque standard Python propose la bibliothèque argparse pour vous aider.
argparse est une implémentation robuste et solide pour le traitement en ligne de commande
, mais il est quelque peu verbeux à utiliser. Par exemple, nous avons ici
un script extrêmement simple qui va additionner deux nombres passés
en ligne de commande :
import begin
@begin.start(auto_convert=True)
def main(a: 'First value' = 0.0, b: 'Second value' = 0.0):
""" Add two numbers """
print(a + b)
pip installer colorama
Beaucoup de vos programmes Python de bureau ne seront jamais utilisés que sur
la ligne de commande, il est donc logique de faire tout ce que vous pouvez pour
améliorer autant que possible l'expérience de vos utilisateurs. L'utilisation
de la couleur peut considérablement améliorer votre interface utilisateur, et colorama
permet d'ajouter très facilement des touches de couleur dans vos
applications en ligne de commande.
from colorama import init, Fore, Back, Style
init(autoreset=True)
messages = ['blah blah blah',(Fore.LIGHTYELLOW_EX + Style.BRIGHT
+ BACK.MAGENTA + 'Alert!!!'),'blah blah blah']
for m in messages:
print(m)
pip install pyqtgraph
python -m pyqtgraph.exemples
La bibliothèque de traçage de graphiques la plus populaire en Python est matplotlib, mais
vous n'avez peut-être pas encore entendu parler de la merveilleuse alternative, pyqtgraph.
Pyqtgraph n'est pas un remplacement un à un pour matplotlib ; il offre plutôt
une sélection différente de fonctionnalités et est particulièrement excellent
pour la visualisation en temps réel et interactive.
4. pywebview
Pywebview vous donne une commande en une ligne pour
créer une fenêtre d'interface graphique qui encapsule une fenêtre de "vue Web" native du système.
En combinant cela avec une application Web Python comme Flask ou Bottle, il
devient très facile de créer une application locale avec une interface graphique, tout en
profitant des dernières technologies d'interface graphique développées
dans l'espace du navigateur. L'avantage d'utiliser le
widget de navigateur natif du système est que vous n'avez pas à distribuer un ensemble d'applications potentiellement volumineux à vos utilisateurs.
5. psutil
Psutil fournit un accès complet aux informations système. Voici un
exemple simple d'un rapport de base pour la charge CPU échantillonnée sur 5 secondes :
import psutil
cpu = psutil.cpu_percent(interval=5, percpu=True)
print(cpu)
Watchdog est une bibliothèque multiplateforme de haute qualité pour recevoir des notifications de modifications dans le système de fichiers. Ces notifications de système de fichiers
sont une exigence fondamentale dans de nombreuses applications d'automatisation, et
Watchdog gère tous les détails de bas niveau et multiplateformes des
notifications d'événements système. Et, la grande chose à propos de Watchdog
est qu'il n'utilise pas d'interrogation
7. ptpython
ptpython est une interface d'interprétation alternative, offrant une belle
expérience Python interactive. En tant que tel, ptpython ressemble plus à un outil
qu'à une bibliothèque à inclure dans vos propres projets, mais quel outil ! avec interface de base
8. flèches
Bien que les opinions divergent, il y a ceux qui ont trouvé le module datetime de la bibliothèque standard déroutant à utiliser. La documentation du module elle-même dans les premiers paragraphes explique pourquoi : elle fournit
à la fois des objets naïfs et conscients pour représenter les dates et les heures. Les naïfs
sont source de confusion, car les développeurs d'applications
se retrouvent de plus en plus à travailler sur des projets dans lesquels
les fuseaux horaires sont d'une importance cruciale. L'essor spectaculaire de l'infrastructure cloud et des applications logicielles en tant que service a contribué à la
réalité selon laquelle votre application s'exécutera fréquemment dans un
fuseau horaire différent (par exemple, sur un serveur) de celui où se trouvent les développeurs, et différent encore de l'endroit où vos utilisateurs sont localisés.
import arrow
t0 = arrow.now()
print(t0)
t1 = arrow.utcnow()
print(t1)
difference = (t0 - t1).total_seconds()
print('Total difference: %.2f seconds' % difference)
parsedatetime est une merveilleuse bibliothèque avec un objectif dédié : l'analyse du texte en dates et heures. Comme vous vous en doutez, il peut être obtenu
avec pip install parsedatetime. La documentation officielle
ressemble beaucoup à une API, ce qui rend plus difficile qu'il ne devrait l'être d'avoir un
aperçu rapide de ce que propose la bibliothèque, mais vous pouvez avoir une assez bonne
idée de ce qui est disponible en parcourant la vaste suite de tests.
import parsedatetime as pdt
cal = pdt.Calendar()
examples = [
"2016-07-16",
"2016/07/16",
"2016-7-16",
"2016/7/16",
"07-16-2016",
"7-16-2016",
"7-16-16",
"7/16/16",
]
print('{:30s}{:>30s}'.format('Input', 'Result'))
print('=' * 60)
for e in examples:
dt, result = cal.parseDT(e)
print('{:<30s}{:>30}'.format('"' + e + '"', dt.ctime()))
Il existe un intérêt croissant pour la création de bots et d'autres applications de surveillance et d'automatisation. Pour ces applications, une exigence commune est d'effectuer des actions à des moments spécifiés ou à
des intervalles spécifiés. Cette fonctionnalité est fournie par le module sched de la bibliothèque standard. Il existe déjà des outils similaires fournis
par les systèmes d'exploitation, tels que cron sous Linux et
le planificateur de tâches Windows, mais avec le module sched de Python, vous pouvez ignorer
ces différences de plate-forme et incorporer des tâches planifiées
dans un programme qui pourrait avoir de nombreuses autres fonctions.
import sched
import time
from datetime import datetime, timedelta
scheduler = sched.scheduler(timefunc=time.time)
def saytime():
print(time.ctime())
scheduler.enter(10, priority=0, action=saytime)
saytime()
try:
scheduler.run(blocking=True)
except KeyboardInterrupt:
print('Stopped.')
pip installer flit
flit est un outil qui simplifie considérablement le processus de soumission d'un
package Python au Python Package Index (PyPI). Le processus traditionnel
commence par la création d'un fichier setup.py ; le simple fait de comprendre comment
faire cela nécessite une quantité de travail considérable, même pour comprendre
ce qu'il faut faire. En revanche, flit créera son fichier de configuration de manière interactive, et pour les packages simples typiques, vous serez prêt à télécharger sur
PyPI presque immédiatement.
12. Boltons
La bibliothèque boltons est une collection à usage général de modules Python
qui couvre un large éventail de situations que vous pouvez rencontrer. La
bibliothèque est bien entretenue et de haute qualité; cela vaut la peine d'être ajouté à
votre ensemble d'outils.
12. Cyton
Cython est un outil magique ! Comme pour la plupart des appareils magiques, il est difficile
de décrire exactement ce que c'est. Cython est un outil qui convertit le code source Python en code source C ; ce nouveau code est ensuite compilé dans
un binaire natif lié au runtime CPython.
13. génial-python
Enfin, nous avons awesome-python. Ce n'est pas une bibliothèque, mais plutôt une
énorme liste organisée de bibliothèques Python de haute qualité couvrant un grand
nombre de domaines. Si vous n'avez jamais vu cette liste, assurez-vous
de réserver un peu de temps avant de naviguer car une fois que vous aurez commencé, vous aurez
du mal à vous arracher !
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































