Bibliothèque standard Python – Wikipedia – Bien choisir son serveur d impression
Une bibliothèque standard riche est l’un des avantages du langage de programmation Python. Il existe des outils pour travailler avec de nombreux protocoles réseau et formats Internet, par exemple des modules pour écrire des serveurs et des clients HTTP, pour analyser et créer des courriers électroniques, pour travailler avec XML, etc. Un ensemble de modules pour travailler avec le système d'exploitation vous permet écrire des applications multiplateformes. Il existe des modules permettant de travailler avec des expressions régulières, des encodages de texte, des formats multimédia, des protocoles cryptographiques, des archives, la sérialisation de données, la prise en charge du test unitaire, etc.
Sommaire
Module système[[[[régner | éditer le code]
Ce module contient des fonctions et des constantes pour interagir avec l'interpréteur Python. Ce module, y compris, contient les variables suivantes:
argv
– arguments en ligne de commande,byteorder
– l'ordre des octets de la plate-forme,& # 39; peu & # 39;
ou& # 39; grand & # 39;
,drapeaux
– un objet qui fournit sous la forme d'attributs des informations sur les indicateurs donnés à l'interpréteur. Par exemple,sys.flags.debug
parle de mode débogage,maxint
– nombre entier maximum,Plate-forme
– l'identifiant de la plateforme, par exemple, & # 39; linux-i386 & # 39 ;,stdin
,stdout
,stderr
– entrée standard, sortie et sortie d'erreur,version
– ligne avec version
autre.
Le module contient également plusieurs fonctions.[1].
Module contextuel[[[[régner | éditer le code]
Le module contient des fonctions de support pour le support opérateur. avec
[2][3].
Exemple d'utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:
avec ouvrir(Myfile.dat & # 39;, & # 39; wb & # 39;) comme fh:
fh.écrire(& # 39; Mes détails & # 39;)
Dans l'exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L'API du gestionnaire de contexte comprend deux méthodes:
- Méthode
__entrer__
appelé en entrant dans le blocavec
. Retourne l'objet qui reçoit le paramètre spécifié parcomme
, - Méthode
__sortie__
appelé lorsque le contrôle quitte le blocavec
.
Module contextlib
propose un décorateur pour créer un gestionnaire de contexte basé sur le générateur:
de contextlib importation gestionnaire de contexte
@contextmanager
def mon_context():
essayer:
rendement ma valeur # valeur pour as
sauf Myerror, e:
# gestion des exceptions
enfin:
# exécuté avec aucun résultat
Module abc[[[[régner | éditer le code]
Le module définit la métaclasse ABCMeta
et décorateurs méthode abstraite
et propriété abstraite
définir de nouvelles classes de base abstraites (eng. classe de base abstraite)[4]. Il convient de noter que la classe de base abstraite est comprise ici dans un sens différent de celui de C ++.[5].
La bibliothèque standard étend la gamme des types de données Python disponibles.[6]. Il existe des types de données distincts pour la date et l'heure, le tableau, le tas, la file d'attente, les références faibles et les types de base abstraits du module collections.
Module datetime[[[[régner | éditer le code]
Le module datetime fournit cinq classes: date (rendez-vous amoureux
), temps (temps
), la combinaison de date et heure (date / heure
), la différence de dates et d'heures (timedelta
) et le fuseau horaire (tzinfo
)[7].
L'exemple suivant imprime une instance. date / heure
qui fixe la date et l'heure au moment de l'appel de la méthode à présent ()
:
>>> importation date / heure
>>> date / heure.date / heure.à présent()
date / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)
Module Collections[[[[régner | éditer le code]
Ce module comprend un ensemble de types de données spéciaux – des conteneurs qui complètent les types standard intégrés. dict
, liste
, ensemble
et tuple
. Par exemple pour Python 2.7: OrdreDict
– dictionnaire ordonné (dans l'ordre d'ajout d'éléments), defaultdict
– un dictionnaire qui appelle une fonction donnée pour un élément qui n'y est pas, Compteur
– un dictionnaire pratique à utiliser pour compter les mots, Deque
– liste doublement liée nommétuple
– un tuple avec la possibilité d'accéder aux éléments par noms d'attributs. Il existe également des classes de base abstraites. Conteneur, séquence, ensemble, cartographie
autre[8][9].
Un exemple montrant comment travailler avec un deck:
>>> de collections importation deque
>>> ré = deque(& # 39; 123 & # 39;)
>>> ré[[[[un]
& # 39; 2 & # 39;
>>> ré.pop()
& # 39; 3 & # 39;
>>> ré.appendice arrière(& # 39; 0 & # 39;)
>>> liste(ré)
[[[[& # 39; 0 & # 39;, & # 39; un & # 39;, & # 39; 2 & # 39;]
Exemple de tuple nommé pour un point dans un espace tridimensionnel:
>>> de collections importation nommétuple
>>> Point = nommétuple(& # 39; Point & # 39;, [[[[& # 39; x & # 39;, & # 39; y & # 39;, & # 39; z & # 39;]) # Définir le point de classe
>>> une = Point(1,0, 2.0, 3.0) # Instance de point
>>> une.X + une.y + une.z # Accès par attributs
6.0
>>> une # Cela ressemble à l'impression
Point(X=1,0, y=2.0, z=3.0)
>>> une + (4.0, 5.0) # Fonctionne comme un tuple
(1,0, 2.0, 3.0, 4.0, 5.0)
En Python 3.3, une classe est apparue Carte de la chaîne
qui vous permet de créer des dictionnaires imbriqués[10].
Exemple dans lequel la recherche d'une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:
>>> local_cfg = & # 39; a & # 39;: quatre
>>> user_cfg = & # 39; a & # 39;: cinq
>>> system_cfg = & # 39; a & # 39;: cinq, & # 39; b & # 39;: Dix
>>> cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)
>>> cm[[[[& # 39; a & # 39;], cm[[[[& # 39; b & # 39;]
(quatre, Dix)
>>> local_cfg[[[[& # 39; b & # 39;] = Dix
>>> cm[[[[& # 39; a & # 39;], cm[[[[& # 39; b & # 39;]
(quatre, Dix)
Module Os[[[[régner | éditer le code]
Le module fournit les fonctions d’une interface portable aux principaux services du système d’exploitation; il définit certaines variables (par exemple, environ pour accéder aux variables d'environnement)[11].
Module Os.path[[[[régner | éditer le code]
Le module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l'utilisation de certaines fonctions du module:
>>> importation os.path
>>> os.chemin.joindre("/ tmp / 1", "temp.file") # concaténation de chemins
& # 39; /tmp/1/temp.file'
>>> os.chemin.nom de répertoire("/tmp/1/temp.file") # nom du répertoire donné un chemin complet
& # 39; / tmp / 1 & # 39;
>>> os.chemin.nom de base("/tmp/1/temp.file") # nom de fichier pour le chemin complet donné
& # 39; temp.file & # 39;
>>> os.chemin.normpath("/tmp//2/../1/temp.file") # normalisation de chemin
& # 39; /tmp/1/temp.file'
>>> os.chemin.existe("/tmp/1/temp.file") # y a-t-il un moyen?
Faux
La bibliothèque standard contient plusieurs modules permettant de travailler avec des chaînes et du traitement de texte, ainsi que les fonctionnalités suivantes.[12].
Constantes et fonctions utiles du module chaîne[[[[régner | éditer le code]
Le module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:
ascii_letters (une chaîne contenant toutes les lettres du jeu ASCII), ascii_lowercase, digits (une chaîne avec des nombres de 0 à 9), des lettres (lettres, en fonction du paramètre régional), etc.
>>> de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres
>>> ascii_letters
& # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ & # 39;
>>> ascii_lowercase
Abcdefghijklmnopqrstuvwxyz & # 39;
>>> ascii_uppercase
& # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ & # 39;
>>> chiffres
0123456789 & # 39;
Créer un mot de passe:
>>> caractères = ascii_letters + chiffres
>>> de au hasard importation choix
>>> n = huit # longueur du mot de passe
>>> & # 39; & # 39;.joindre(choix(caractères) pour _ dans intervalle(n))
& # 39; ia1KGm2t & # 39;
Pour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle
. L'exemple illustre les méthodes remplacer
et safe_substitute
:
>>> de chaîne importation Modèle
>>> tpl = Modèle("" "$ name a $ montant $$. oh" "")
>>> tpl.remplacer("montant": 100, "prénom": "John")
& # 39; John a 100 $. Oh & # 39;
>>> tpl.safe_substitute("montant": 100)
$ Name a 100 €. Oh & # 39;
>>> # Pour la comparaison de syntaxe, la méthode de formatage d'une chaîne:
>>> "" "name a montant $. oh" "".format(**"montant": 100, "prénom": "John")
& # 39; John a 100 $. Oh & # 39;
Support des expressions régulières: re module[[[[régner | éditer le code]
Les expressions régulières sont un puissant outil de traitement de texte. Le module re contient des fonctions à remplacer (sous
), fractionnement de ligne (Divisé
), en comparant une chaîne avec un motif (rencontre
, chercher
), chercher (chercheur
, Trouver tout
) et définit les classes de l'expression régulière compilée et le résultat de la comparaison. Exemple:
>>> importation ré
>>> compiled_re = ré.compiler(r"[a-b][0-9]* ")
>>> [[[[m.groupe(0) pour m dans compiled_re.chercheur("A1 c123 a12, b abc (b987).")]
[[[[& # 39; a12 & # 39;, & # 39; b & # 39;, & # 39; a & # 39;, & # 39; b & # 39;, & # 39; b987 & # 39;]
Travailler avec des structures d'octets dans le module struct[[[[régner | éditer le code]
Le module struct est utilisé pour convertir les données à partir de chaînes d'octets et de types de données du langage Python et peut être utilisé lorsque vous travaillez avec des formats de fichiers binaires et des protocoles de communication.
Les fonctions pack
et déballer
vous permettent de «compresser» et de «décompresser» des données en fonction d'une chaîne de formatage composée de leurs codes de formatage, par exemple:
>>> de struct importation pack, déballer
>>> pack(& # 39; hh & # 39;, un, 2) # h - code entier court avec signe
& # 39; x01 x00 x02 x00& # 39;
>>> déballer(& # 39; bbbb & # 39;, & # 39; ABCD & # 39;) # b correspond à un caractère signé
(65, 66, 67, 68)
L'ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:
>>> pack(& # 39 ;! l & # 39;, 1025) # réseau (du plus vieux au plus jeune, big-endian)
& # 39; x00 x00 x04 x01& # 39;
>>> pack(& # 39;> l & # 39;, 1025) # de senior à junior, big-endian
& # 39; x00 x00 x04 x01& # 39;
>>> pack(& # 39; <l & # 39;, 1025) # de junior à senior, little-endian
& # 39; x01 x04 x00 x00& # 39;
Le module définit également la classe. Struct
dont les méthodes correspondent aux fonctions du module.
CSV[[[[régner | éditer le code]
Un module est conçu pour lire et écrire un fichier CSV. CSV
.
Ce module est conçu pour fonctionner avec différents dialectes: un séparateur de virgule, un séparateur de point-virgule, un délimiteur de tabulation (Excel).
L'exemple le plus simple est:
importation CSV
lecteur = CSV.lecteur(ouvrir("some.csv", "rb"))
pour rangée dans lecteur:
impression rangée
Le module vous permet de personnaliser le format des fichiers lisibles et inscriptibles. Par exemple, vous pouvez définir le séparateur de champ :
délimiteur de ligne – |
symbole de citation – `
(au lieu "
défaut).
un importation CSV
2
3 avec ouvrir("some.csv", "wb") comme csv_fh:
quatre écrivain = CSV.écrivain(csv_fh, délimiteur=& # 39;: & # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=& # 39; & # 39; & # 39;, linererminator=& # 39; | & # 39;)
cinq écrivain.écrivains([[[[
6 [[[[1997, "Gué", "E350", "ac, abs, lune", "3000.00"],
7 [[[[1999, "Chevy", "Venture` Extended Edition`", "", "4900.00"],
huit [[[[1996, "Jeep", "Grand Cherokee", "air, toit ouvrant, chargé DOIT VENDRE!", "4799.00"]
9 ])
Travailler avec des archives de fichiers[[[[régner | éditer le code]
La bibliothèque standard prend en charge plusieurs formats d'archives sous la forme des modules suivants: bz2
(bzip2), gzip
(gzip), tarfile
(le goudron) fichier zip
(zip), ainsi que des liaisons à la bibliothèque zlib en tant que module zlib
[13].
Exemples pour Python 2.7 et 3.2[[[[régner | éditer le code]
Dans l'exemple suivant, le fichier file.txt contenant le texte «texte dans le fichier» sera archivé dans le fichier archive.zip. Ceci est un autre exemple d'utilisation du gestionnaire de contexte.
de fichier zip importation Fichier zip
avec Fichier zip(Archive.zip & # 39;, & # 39; w & # 39;) comme ziparc:
ziparc.écrivain(& # 39; fichier.txt & # 39;, & # 39; texte dans le fichier & # 39;)
La lecture des archives est similaire. L'exemple suivant imprime les noms de fichier contenus dans l'archive:
de fichier zip importation Fichier zip
avec Fichier zip(Archive.zip & # 39;, & # 39; r & # 39;) comme ziparc:
pour fileinfo dans ziparc.liste de fichiers:
impression(fileinfo.nom de fichier)
Fichiers de configuration[[[[régner | éditer le code]
Le module est conçu pour lire et écrire des fichiers de configuration. ConfigParser
. Ce module est écrit en Python pur et est donc indépendant de la plate-forme. La syntaxe des fichiers de configuration est similaire à celle utilisée dans les fichiers Windows INI. Par exemple:
[My Section] # quelques commentaires foodir =% (dir) s / quel que soit dir = frob version: 1.0
En tant que clé de séparation, une valeur peut être utilisée "="
ou ":"
. Lorsque vous utilisez des cours ConfigParser
et SafeConfigParser
le remplacement de la chaîne a lieu % (<ключ>) s
par valeur de paramètre <ключ>
. Dans cet exemple, la valeur foodir
sera égal frob / peu importe
. Chaîne commençant par un personnage "#"
, est considéré comme un commentaire et est ignoré par les analyseurs.
Les informations contenues dans cette section sont obsolètes. |
Pour diverses raisons (y compris politiques – dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l'autorisation des agences gouvernementales concernées), la prise en charge de la cryptographie dans la bibliothèque Python standard est limitée et se résume à des fonctions de hachage.
Dans la version 2.5, la structure de la crypto-bibliothèque était unifiée – toutes les fonctions de hachage sont assemblées dans un module. hashlib
et supprimé les modules de chiffrement non cryptographiques inutiles.
Premiers modules md5
, Hmac
, sha
déclaré obsolète et sera supprimé dans une version ultérieure.
Comme dans d’autres cas (DB-API, Python Web Server Gateway Interface), s’il est impossible (ou déraisonnable) d’inclure une prise en charge technologique complète dans la bibliothèque standard, des normes pour les interfaces fournies par des bibliothèques externes ont été adoptées – API pour les fonctions de hachage, API pour les chiffrements de bloc. Cependant, toutes les bibliothèques ne répondent pas à ces exigences (soit en raison de leur âge avancé – elles ont été créées avant l'écriture de CryptoAPI ou parce qu'elles sont générées automatiquement au-dessus des bibliothèques C correspondantes).
Utiliser des bibliothèques compatibles avec CryptoAPI est très simple:
>>> importation hashlib
>>> m = hashlib.Nouveau(& # 39; md5 & # 39;) # créer un nouvel objet de hachage avec la fonction MD5
>>> m = hashlib.md5() soit si
>>> m.mettre à jour("données de test") # ajouter des données
>>> m.digérer()
& # 39; xebs: x00 xc0 xc9 xd36 xe6V x91 xa3z xb5B x93& # 39;
>>> m.hexdigest()
& # 39; e733a00c0c9d336e65691a37ab54293 & # 39;
hashlib prend en charge les fonctions de hachage suivantes: MD5, SHA-1, SHA224, SHA256, SHA384, SHA512 (dans les versions Python avec la bibliothèque OpenSSL incluse, cette liste est plus longue). Il convient de noter que la simple présence de l'algorithme dans la bibliothèque standard ne garantit pas sa fiabilité cryptographique. Ainsi, les algorithmes MD5 et SHA-1, au début de 2007, ne sont pas résistants à la cryptographie.
Pour le chiffrement, vous devez utiliser des bibliothèques tierces, par exemple pycrypto (correspond à CryptoAPI) ou M2Crypto (ne correspond pas à CryptoAPI). Une liste assez complète est présentée dans PyPI.[14].
La bibliothèque standard contient des modules permettant de travailler avec les protocoles réseau HTTP (le client et le serveur le plus simple), FTP, XML-RPC, SMTP, IMAP, NNTP et autres.
Recevoir un fichier via HTTP (HTTPS)[[[[régner | éditer le code]
Email[[[[régner | éditer le code]
Module smtplib[[[[régner | éditer le code]
Le module est conçu pour envoyer des courriers électroniques via le protocole SMTP.
importation smtplib
def send_email(texte):
serveur = smtplib.SMTP("smtp.server", 587) # connecter au serveur
serveur.ehlo()
serveur.débuts()
serveur.s'identifier("s'identifier", "mot de passe") Se connecter au serveur
message = " r n".joindre([[[[ # formulaire Email avec champs
"De: de",
"To: to",
"Sujet: Sujet",
"",
texte,
])
serveur.envoyer un mail("login @ server", "Adresse e-mail du destinataire", message) # envoyer
serveur.quitter() se déconnecter du serveur
send_email(& # 39; Bonjour le monde! & # 39;)
Bases de données simples[[[[régner | éditer le code]
Python prend en charge l’accès aux fichiers au format DBM: Unix (n) dbm (module dbm
en python 2.x ou dbm.ndbm
dans Python 3), GNU DBM (module gdbm
), un module écrit en Python pur, dumbdbm
[15].
Travailler avec un objet de base de données est similaire à travailler avec un dictionnaire Python (par exemple dumbdbm
)[16]:
>>> importation dumbdbm
>>> ré = dumbdbm.ouvrir(& # 39; my.db & # 39;, & # 39; w & # 39;) # fichier de base de données ouvert
>>> ré[[[[& # 39; clé & # 39;] = & # 39; valeur & # 39; # attribuer une valeur par clé
>>> v = ré[[[[& # 39; clé & # 39;] # obtenir de la valeur par clé
>>> ré.synchroniser() changements d'enregistrement
>>> ré.Fermer() # fermer la base de données
Pour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger
(Rus "mettre sur l'étagère").
Sqlite[[[[régner | éditer le code]
SQLite est une base de données multiplateformes intégrée qui prend en charge un ensemble assez complet de commandes SQL et est disponible en codes sources (en C). À partir de Python 2.5, la bibliothèque sqlite3
vient avec un interprète Python.
Pour travailler avec la bibliothèque, vous devez créer un objet. Lien
qui sert de base de données:
un importation sqlite3
2 Connecticut = sqlite3.relier(& # 39; exemple.db & # 39;)
3 c = Connecticut.le curseur()
quatre
cinq # Créer une table
6 c.exécuter(& # 39; & # 39; Actions CREATE TABLE
7 (date, texte trans, texte du symbole, quantité réelle, prix réel) & # 39; & # 39; & # 39; & # 39;)
huit
9 # Insérer une ligne
Dix c.exécuter("INSERT INTO stocks" (2006-01-05, "ACHETER", "RHAT", 100,35.14) ")
Onze
12 # Enregistrer (et écrire) les modifications
13 Connecticut.commettre()
14
15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB
seize Connecticut.Fermer()
Support au développement logiciel[[[[régner | éditer le code]
Module filetage
fournit une classe Fil
correspondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé
et Rlock
, Minuteur
sémaphores Sémaphore
et Sémaphore Bounded
variable de condition État
un événement un événement
. En outre, pour la mise en file d'attente – FIFO, LIFO, la file d'attente prioritaire – le module est utilisé queue
(Queue
en python 2).
Python n'a pas les moyens de mettre fin ou de mettre en pause les threads, ni de libérer tous les verrous[17].
La présence dans l’implémentation principale du verrou d’interprète global Python (eng. Verrou d'interprète global, GIL) limite sérieusement l'utilité de l'informatique multithread dans le comptage des problèmes[18].
Le package Python standard comprend la bibliothèque graphique Tkinter.
- ↑ Beazley, 2009, p. 229-235.
- ↑ Ziadé, 2008, p. 56-60.
- ↑ Doug Hellman. contextlib – utilitaires de gestion de contexte (eng.). La date d'appel est le 30 août 2012. Archivé le 18 octobre 2012.
- ↑ Beazley, 2009, p. 257-259.
- ↑ Documentation Python v2.7, bibliothèque standard Python, services d'exécution Python, classes de base abstraites
- ↑ Types de données – Documentation Python 3
- ↑ Prokhorenok, 2011.
- ↑ Ziadé, 2008, p. 303-306.
- ↑ Beazley, 2009, p. 262-265.
- ↑ Documentation Python 3.3, bibliothèque standard Python, types de données
- ↑ Beazley, 2009, p. 378–396.
- ↑ Beazley, 2009, ch. seize.
- ↑ Beazley, 2009, p. 313–329.
- ↑ Modules cryptographiques dans le répertoire PyPI
- ↑ Documentation Python v2.7, bibliothèque standard Python, anydbm – Accès générique aux bases de données de style DBM
- ↑ Beazley, 2009, p. 310—311.
- ↑ Beazley, 2009, p. 436-444.
- ↑ Beazley, 2009, p. 444.
- David M. Beazley. Référence essentielle de Python. – 4ème édition. – Addison-Wesley Professional, 2009. – 717 с. – ISBN 978-0672329784.
- Doug Hellmann. La bibliothèque standard Python par exemple. – Addison-Wesley Professional, 2011. – 1344 с. – ISBN 978-0321767349.
- Fredrik Lundh. Bibliothèque standard Python. – O & # 39; Reilly Media, 2001. – 281 с. – ISBN 978-0596000967.
- Tarek Ziadé. Programmation Expert Python. – Packt Publishing Ltd., 2008. – 372 с. – ISBN 978-1-847194-94-7.
- Прохоренок Н. А. Python. Самое необходимое .. – В-Петербург, 2011. – 416 с. – ISBN 978-5-9775-0614-4.
Commentaires
Laisser un commentaire