{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Bibliothèque standard Python &#8211; Wikipedia\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-05-04T02:29:18+00:00","modified_at":"2019-05-04T02:29:18+00:00","word_count":3551,"reading_time_seconds":1066,"summary":"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 [&hellip;]","summary_points":["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&#39;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."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"3dfa8f33abb10e127f305fea36d6904a","plain_text":"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&#39;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.\n\nModule système[[[[régner | éditer le code]\nCe module contient des fonctions et des constantes pour interagir avec l&#39;interpréteur Python. Ce module, y compris, contient les variables suivantes:\n\n\nargv &#8211; arguments en ligne de commande,\nbyteorder &#8211; l&#39;ordre des octets de la plate-forme, &amp; # 39; peu &amp; # 39; ou &amp; # 39; grand &amp; # 39;,\ndrapeaux &#8211; un objet qui fournit sous la forme d&#39;attributs des informations sur les indicateurs donnés à l&#39;interpréteur. Par exemple, sys.flags.debug parle de mode débogage,\nmaxint &#8211; nombre entier maximum,\nPlate-forme &#8211; l&#39;identifiant de la plateforme, par exemple, &amp; # 39; linux-i386 &amp; # 39 ;,\nstdin, stdout, stderr &#8211; entrée standard, sortie et sortie d&#39;erreur,\nversion &#8211; ligne avec version\n\nautre.\n\nLe module contient également plusieurs fonctions.[1].\n\nModule contextuel[[[[régner | éditer le code]\nLe module contient des fonctions de support pour le support opérateur. avec[2][3].\n\nExemple d&#39;utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:\n\n\navec ouvrir(Myfile.dat &amp; # 39;, &amp; # 39; wb &amp; # 39;) comme fh:\n    fh.écrire(&amp; # 39; Mes détails &amp; # 39;)\n\n\nDans l&#39;exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L&#39;API du gestionnaire de contexte comprend deux méthodes:\n\n\nMéthode __entrer__ appelé en entrant dans le bloc avec. Retourne l&#39;objet qui reçoit le paramètre spécifié par comme,\nMéthode __sortie__ appelé lorsque le contrôle quitte le bloc avec.\n\nModule contextlib propose un décorateur pour créer un gestionnaire de contexte basé sur le générateur:\n\n\nde contextlib importation gestionnaire de contexte\n@contextmanager\ndef mon_context():\n    essayer:\n        rendement ma valeur  # valeur pour as\n    sauf Myerror, e:\n        # gestion des exceptions\n    enfin:\n        # exécuté avec aucun résultat\n\n\nModule abc[[[[régner | éditer le code]\nLe 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].\n\nLa 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&#39;heure, le tableau, le tas, la file d&#39;attente, les références faibles et les types de base abstraits du module collections.\n\nModule datetime[[[[régner | éditer le code]\nLe 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&#39;heures (timedelta) et le fuseau horaire (tzinfo)[7].\n\nL&#39;exemple suivant imprime une instance. date / heurequi fixe la date et l&#39;heure au moment de l&#39;appel de la méthode à présent ():\n\n\n&gt;&gt;&gt; importation date / heure\n&gt;&gt;&gt; date / heure.date / heure.à présent()\ndate / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)\n\n\nModule Collections[[[[régner | éditer le code]\nCe module comprend un ensemble de types de données spéciaux &#8211; des conteneurs qui complètent les types standard intégrés. dict, liste, ensemble et tuple. Par exemple pour Python 2.7: OrdreDict &#8211; dictionnaire ordonné (dans l&#39;ordre d&#39;ajout d&#39;éléments), defaultdict &#8211; un dictionnaire qui appelle une fonction donnée pour un élément qui n&#39;y est pas, Compteur &#8211; un dictionnaire pratique à utiliser pour compter les mots, Deque &#8211; liste doublement liée nommétuple &#8211; un tuple avec la possibilité d&#39;accéder aux éléments par noms d&#39;attributs. Il existe également des classes de base abstraites. Conteneur, séquence, ensemble, cartographie autre[8][9].\n\nUn exemple montrant comment travailler avec un deck:\n\n\n&gt;&gt;&gt; de collections importation deque\n&gt;&gt;&gt; ré = deque(&amp; # 39; 123 &amp; # 39;)\n&gt;&gt;&gt; ré[[[[un]\n&amp; # 39; 2 &amp; # 39;\n&gt;&gt;&gt; ré.pop()\n&amp; # 39; 3 &amp; # 39;\n&gt;&gt;&gt; ré.appendice arrière(&amp; # 39; 0 &amp; # 39;)\n&gt;&gt;&gt; liste(ré)\n[[[[&amp; # 39; 0 &amp; # 39;, &amp; # 39; un &amp; # 39;, &amp; # 39; 2 &amp; # 39;]\n\n\nExemple de tuple nommé pour un point dans un espace tridimensionnel:\n\n\n&gt;&gt;&gt; de collections importation nommétuple\n&gt;&gt;&gt; Point = nommétuple(&amp; # 39; Point &amp; # 39;, [[[[&amp; # 39; x &amp; # 39;, &amp; # 39; y &amp; # 39;, &amp; # 39; z &amp; # 39;])  # Définir le point de classe\n&gt;&gt;&gt; une = Point(1,0, 2.0, 3.0)  # Instance de point\n&gt;&gt;&gt; une.X + une.y + une.z  # Accès par attributs\n6.0\n&gt;&gt;&gt; une  # Cela ressemble à l&#39;impression\nPoint(X=1,0, y=2.0, z=3.0)\n&gt;&gt;&gt; une + (4.0, 5.0)  # Fonctionne comme un tuple\n(1,0, 2.0, 3.0, 4.0, 5.0)\n\n\nEn Python 3.3, une classe est apparue Carte de la chaînequi vous permet de créer des dictionnaires imbriqués[10].\n\nExemple dans lequel la recherche d&#39;une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:\n\n\n&gt;&gt;&gt; local_cfg = &amp; # 39; a &amp; # 39;: quatre\n&gt;&gt;&gt; user_cfg = &amp; # 39; a &amp; # 39;: cinq\n&gt;&gt;&gt; system_cfg = &amp; # 39; a &amp; # 39;: cinq, &amp; # 39; b &amp; # 39;: Dix\n&gt;&gt;&gt; cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n&gt;&gt;&gt; local_cfg[[[[&amp; # 39; b &amp; # 39;] = Dix\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n\n\nModule Os[[[[régner | éditer le code]\nLe 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&#39;environnement)[11].\n\nModule Os.path[[[[régner | éditer le code]\nLe module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l&#39;utilisation de certaines fonctions du module:\n\n\n&gt;&gt;&gt; importation os.path\n&gt;&gt;&gt; os.chemin.joindre(&quot;/ tmp / 1&quot;, &quot;temp.file&quot;)  # concaténation de chemins\n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.nom de répertoire(&quot;/tmp/1/temp.file&quot;)  # nom du répertoire donné un chemin complet\n&amp; # 39; / tmp / 1 &amp; # 39;\n&gt;&gt;&gt; os.chemin.nom de base(&quot;/tmp/1/temp.file&quot;)  # nom de fichier pour le chemin complet donné\n&amp; # 39; temp.file &amp; # 39;\n&gt;&gt;&gt; os.chemin.normpath(&quot;/tmp//2/../1/temp.file&quot;)  # normalisation de chemin \n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.existe(&quot;/tmp/1/temp.file&quot;)  # y a-t-il un moyen?\nFaux\n\n\nLa 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].\n\nConstantes et fonctions utiles du module chaîne[[[[régner | éditer le code]\nLe module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:\nascii_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.\n\n\n&gt;&gt;&gt; de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres\n&gt;&gt;&gt; ascii_letters\n&amp; # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; ascii_lowercase\nAbcdefghijklmnopqrstuvwxyz &amp; # 39;\n&gt;&gt;&gt; ascii_uppercase\n&amp; # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; chiffres\n0123456789 &amp; # 39;\n\n\nCréer un mot de passe:\n\n\n&gt;&gt;&gt; caractères = ascii_letters + chiffres\n&gt;&gt;&gt; de au hasard importation choix\n&gt;&gt;&gt; n = huit                            # longueur du mot de passe\n&gt;&gt;&gt; &amp; # 39; &amp; # 39;.joindre(choix(caractères) pour _ dans intervalle(n))\n&amp; # 39; ia1KGm2t &amp; # 39;\n\n\nPour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle. L&#39;exemple illustre les méthodes remplacer et safe_substitute:\n\n\n&gt;&gt;&gt; de chaîne importation Modèle\n&gt;&gt;&gt; tpl = Modèle(&quot;&quot; &quot;$ name a $ montant $$. oh&quot; &quot;&quot;)\n&gt;&gt;&gt; tpl.remplacer(&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n&gt;&gt;&gt; tpl.safe_substitute(&quot;montant&quot;: 100)\n$ Name a 100 €. Oh &amp; # 39;\n&gt;&gt;&gt; # Pour la comparaison de syntaxe, la méthode de formatage d&#39;une chaîne: \n&gt;&gt;&gt; &quot;&quot; &quot;name a montant $. oh&quot; &quot;&quot;.format(**&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n\n\nSupport des expressions régulières: re module[[[[régner | éditer le code]\nLes 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&#39;expression régulière compilée et le résultat de la comparaison. Exemple:\n\n\n&gt;&gt;&gt; importation ré\n&gt;&gt;&gt; compiled_re = ré.compiler(r&quot;[a-b][0-9]* &quot;)\n&gt;&gt;&gt; [[[[m.groupe(0) pour m dans compiled_re.chercheur(&quot;A1 c123 a12, b abc (b987).&quot;)]\n[[[[&amp; # 39; a12 &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; a &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; b987 &amp; # 39;]\n\n\nTravailler avec des structures d&#39;octets dans le module struct[[[[régner | éditer le code]\nLe module struct est utilisé pour convertir les données à partir de chaînes d&#39;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.\nLes fonctions pack et déballer vous permettent de «compresser» et de «décompresser» des données en fonction d&#39;une chaîne de formatage composée de leurs codes de formatage, par exemple:\n\n\n&gt;&gt;&gt; de struct importation pack, déballer\n&gt;&gt;&gt; pack(&amp; # 39; hh &amp; # 39;, un, 2)  # h - code entier court avec signe\n&amp; # 39; x01  x00  x02  x00&amp; # 39;\n&gt;&gt;&gt; déballer(&amp; # 39; bbbb &amp; # 39;, &amp; # 39; ABCD &amp; # 39;)  # b correspond à un caractère signé\n(65, 66, 67, 68)\n\n\nL&#39;ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:\n\n\n&gt;&gt;&gt; pack(&amp; # 39 ;! l &amp; # 39;, 1025)  # réseau (du plus vieux au plus jeune, big-endian)\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39;&gt; l &amp; # 39;, 1025)  # de senior à junior, big-endian\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39; &lt;l &amp; # 39;, 1025)  # de junior à senior, little-endian\n&amp; # 39; x01  x04  x00  x00&amp; # 39;\n\n\nLe module définit également la classe. Structdont les méthodes correspondent aux fonctions du module.\n\nCSV[[[[régner | éditer le code]\nUn module est conçu pour lire et écrire un fichier CSV. CSV.\nCe 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).\nL&#39;exemple le plus simple est:\n\n\nimportation CSV\nlecteur = CSV.lecteur(ouvrir(&quot;some.csv&quot;, &quot;rb&quot;))\npour rangée dans lecteur:\n    impression rangée\n\n\nLe 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 &#8211; |symbole de citation &#8211; ` (au lieu &quot; défaut).\n\n\nun importation CSV\n2 \n3 avec ouvrir(&quot;some.csv&quot;, &quot;wb&quot;) comme csv_fh:\nquatre     écrivain = CSV.écrivain(csv_fh, délimiteur=&amp; # 39;: &amp; # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=&amp; # 39; &amp; # 39; &amp; # 39;, linererminator=&amp; # 39; | &amp; # 39;)\ncinq     écrivain.écrivains([[[[\n6                       [[[[1997, &quot;Gué&quot;,  &quot;E350&quot;, &quot;ac, abs, lune&quot;, &quot;3000.00&quot;],\n7                       [[[[1999, &quot;Chevy&quot;, &quot;Venture` Extended Edition`&quot;, &quot;&quot;, &quot;4900.00&quot;],\nhuit                       [[[[1996, &quot;Jeep&quot;,  &quot;Grand Cherokee&quot;, &quot;air, toit ouvrant, chargé DOIT VENDRE!&quot;, &quot;4799.00&quot;] \n9                     ])\n\n\nTravailler avec des archives de fichiers[[[[régner | éditer le code]\nLa bibliothèque standard prend en charge plusieurs formats d&#39;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].\n\nExemples pour Python 2.7 et 3.2[[[[régner | éditer le code]\nDans l&#39;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&#39;utilisation du gestionnaire de contexte.\n\n\nde fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; w &amp; # 39;) comme ziparc:\n     ziparc.écrivain(&amp; # 39; fichier.txt &amp; # 39;, &amp; # 39; texte dans le fichier &amp; # 39;)\n\n\nLa lecture des archives est similaire. L&#39;exemple suivant imprime les noms de fichier contenus dans l&#39;archive:\n\n\nde fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; r &amp; # 39;) comme ziparc:\n     pour fileinfo dans ziparc.liste de fichiers:\n         impression(fileinfo.nom de fichier)\n\n\nFichiers de configuration[[[[régner | éditer le code]\nLe 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:\n\n[My Section]\n\n\n\n# quelques commentaires\nfoodir =% (dir) s / quel que soit\ndir = frob\nversion: 1.0\n\nEn tant que clé de séparation, une valeur peut être utilisée &quot;=&quot; ou &quot;:&quot;. 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 &quot;#&quot;, est considéré comme un commentaire et est ignoré par les analyseurs.\n\n\n\n\n\n\n\n\nLes informations contenues dans cette section sont obsolètes.\nVous pouvez aider le projet en le mettant à jour puis en supprimant le modèle.\n\n\n\n\nPour diverses raisons (y compris politiques &#8211; dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l&#39;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.\n\nDans la version 2.5, la structure de la crypto-bibliothèque était unifiée &#8211; toutes les fonctions de hachage sont assemblées dans un module. hashlib et supprimé les modules de chiffrement non cryptographiques inutiles.\nPremiers modules md5, Hmac, sha déclaré obsolète et sera supprimé dans une version ultérieure.\n\nComme 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 &#8211; 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é &#8211; elles ont été créées avant l&#39;écriture de CryptoAPI ou parce qu&#39;elles sont générées automatiquement au-dessus des bibliothèques C correspondantes).\n\nUtiliser des bibliothèques compatibles avec CryptoAPI est très simple:\n\n\n &gt;&gt;&gt; importation hashlib\n &gt;&gt;&gt; m = hashlib.Nouveau(&amp; # 39; md5 &amp; # 39;)      # créer un nouvel objet de hachage avec la fonction MD5\n &gt;&gt;&gt; m = hashlib.md5()           soit si\n &gt;&gt;&gt; m.mettre à jour(&quot;données de test&quot;)       # ajouter des données\n &gt;&gt;&gt; m.digérer()\n &amp; # 39; xebs: x00  xc0  xc9  xd36 xe6V x91  xa3z xb5B x93&amp; # 39;\n &gt;&gt;&gt; m.hexdigest()\n &amp; # 39; e733a00c0c9d336e65691a37ab54293 &amp; # 39;\n\n\nhashlib 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&#39;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.\n\nPour 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].\n\nLa 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.\n\nRecevoir un fichier via HTTP (HTTPS)[[[[régner | éditer le code]\nEmail[[[[régner | éditer le code]\nModule smtplib[[[[régner | éditer le code]\nLe module est conçu pour envoyer des courriers électroniques via le protocole SMTP.\n\n\nimportation smtplib\n\ndef send_email(texte):\n    serveur = smtplib.SMTP(&quot;smtp.server&quot;, 587)  # connecter au serveur\n    serveur.ehlo()\n    serveur.débuts()\n    serveur.s&#39;identifier(&quot;s&#39;identifier&quot;, &quot;mot de passe&quot;)  Se connecter au serveur\n    message = &quot; r  n&quot;.joindre([[[[   # formulaire Email avec champs\n        &quot;De: de&quot;, \n        &quot;To: to&quot;, \n        &quot;Sujet: Sujet&quot;, \n        &quot;&quot;, \n        texte,\n        ])\n    serveur.envoyer un mail(&quot;login @ server&quot;, &quot;Adresse e-mail du destinataire&quot;, message)  # envoyer\n    serveur.quitter()  se déconnecter du serveur\n\nsend_email(&amp; # 39; Bonjour le monde! &amp; # 39;)\n\n\nBases de données simples[[[[régner | éditer le code]\nPython 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].\n\nTravailler avec un objet de base de données est similaire à travailler avec un dictionnaire Python (par exemple dumbdbm)[16]:\n\n\n&gt;&gt;&gt; importation dumbdbm\n&gt;&gt;&gt; ré = dumbdbm.ouvrir(&amp; # 39; my.db &amp; # 39;, &amp; # 39; w &amp; # 39;)  # fichier de base de données ouvert\n&gt;&gt;&gt; ré[[[[&amp; # 39; clé &amp; # 39;] = &amp; # 39; valeur &amp; # 39;              # attribuer une valeur par clé\n&gt;&gt;&gt; v = ré[[[[&amp; # 39; clé &amp; # 39;]                    # obtenir de la valeur par clé\n&gt;&gt;&gt; ré.synchroniser()                        changements d&#39;enregistrement\n&gt;&gt;&gt; ré.Fermer()                       # fermer la base de données\n\n\nPour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger (Rus &quot;mettre sur l&#39;étagère&quot;).\n\nSqlite[[[[régner | éditer le code]\nSQLite 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.\n\nPour travailler avec la bibliothèque, vous devez créer un objet. Lien qui sert de base de données:\n\n\n    un importation sqlite3\n    2 Connecticut = sqlite3.relier(&amp; # 39; exemple.db &amp; # 39;)\n    3 c = Connecticut.le curseur()\n    quatre \n    cinq # Créer une table\n    6 c.exécuter(&amp; # 39; &amp; # 39; Actions CREATE TABLE\n    7                                                     (date, texte trans, texte du symbole, quantité réelle, prix réel) &amp; # 39; &amp; # 39; &amp; # 39; &amp; # 39;)\n    huit \n    9 # Insérer une ligne\nDix c.exécuter(&quot;INSERT INTO stocks&quot; (2006-01-05, &quot;ACHETER&quot;, &quot;RHAT&quot;, 100,35.14) &quot;)\nOnze \n12 # Enregistrer (et écrire) les modifications\n13 Connecticut.commettre()\n14 \n15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB\nseize Connecticut.Fermer()\n\n\nSupport au développement logiciel[[[[régner | éditer le code]\nModule filetage fournit une classe Filcorrespondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé et Rlock, Minuteursémaphores Sémaphore et Sémaphore Boundedvariable de condition Étatun événement un événement. En outre, pour la mise en file d&#39;attente &#8211; FIFO, LIFO, la file d&#39;attente prioritaire &#8211; le module est utilisé queue (Queue en python 2).\n\nPython n&#39;a pas les moyens de mettre fin ou de mettre en pause les threads, ni de libérer tous les verrous[17].\n\nLa présence dans l’implémentation principale du verrou d’interprète global Python (eng. Verrou d&#39;interprète global, GIL) limite sérieusement l&#39;utilité de l&#39;informatique multithread dans le comptage des problèmes[18].\n\nLe package Python standard comprend la bibliothèque graphique Tkinter.\n\n\n\n↑ Beazley, 2009, p. 229-235.\n\n↑ Ziadé, 2008, p. 56-60.\n\n↑ Doug Hellman. contextlib &#8211; utilitaires de gestion de contexte (eng.). La date d&#39;appel est le 30 août 2012. Archivé le 18 octobre 2012.\n\n↑ Beazley, 2009, p. 257-259.\n\n↑ Documentation Python v2.7, bibliothèque standard Python, services d&#39;exécution Python, classes de base abstraites\n\n↑ Types de données &#8211; Documentation Python 3\n\n↑ Prokhorenok, 2011.\n\n↑ Ziadé, 2008, p. 303-306.\n\n↑ Beazley, 2009, p. 262-265.\n\n↑ Documentation Python 3.3, bibliothèque standard Python, types de données\n\n↑ Beazley, 2009, p. 378–396.\n\n↑ Beazley, 2009, ch. seize.\n\n↑ Beazley, 2009, p. 313–329.\n\n↑ Modules cryptographiques dans le répertoire PyPI\n\n↑ Documentation Python v2.7, bibliothèque standard Python, anydbm &#8211; Accès générique aux bases de données de style DBM\n\n↑ Beazley, 2009, p. 310—311.\n\n↑ Beazley, 2009, p. 436-444.\n\n↑ Beazley, 2009, p. 444.\n\n\n\n\nDavid M. Beazley. Référence essentielle de Python. &#8211; 4ème édition. &#8211; Addison-Wesley Professional, 2009. &#8211; 717 с. &#8211; ISBN 978-0672329784.\nDoug Hellmann. La bibliothèque standard Python par exemple. &#8211; Addison-Wesley Professional, 2011. &#8211; 1344 с. &#8211; ISBN 978-0321767349.\nFredrik Lundh. Bibliothèque standard Python. &#8211; O &amp; # 39; Reilly Media, 2001. &#8211; 281 с. &#8211; ISBN 978-0596000967.\nTarek Ziadé. Programmation Expert Python. &#8211; Packt Publishing Ltd., 2008. &#8211; 372 с. &#8211; ISBN 978-1-847194-94-7.\nПрохоренок Н. А. Python. Самое необходимое .. &#8211; В-Петербург, 2011. &#8211; 416 с. &#8211; ISBN 978-5-9775-0614-4.\n\n\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["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&#39;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.","Module système[[[[régner | éditer le code]\nCe module contient des fonctions et des constantes pour interagir avec l&#39;interpréteur Python. Ce module, y compris, contient les variables suivantes:","argv &#8211; arguments en ligne de commande,\nbyteorder &#8211; l&#39;ordre des octets de la plate-forme, &amp; # 39; peu &amp; # 39; ou &amp; # 39; grand &amp; # 39;,\ndrapeaux &#8211; un objet qui fournit sous la forme d&#39;attributs des informations sur les indicateurs donnés à l&#39;interpréteur. Par exemple, sys.flags.debug parle de mode débogage,\nmaxint &#8211; nombre entier maximum,\nPlate-forme &#8211; l&#39;identifiant de la plateforme, par exemple, &amp; # 39; linux-i386 &amp; # 39 ;,\nstdin, stdout, stderr &#8211; entrée standard, sortie et sortie d&#39;erreur,\nversion &#8211; ligne avec version","autre.","Le module contient également plusieurs fonctions.[1].","Module contextuel[[[[régner | éditer le code]\nLe module contient des fonctions de support pour le support opérateur. avec[2][3].","Exemple d&#39;utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:","avec ouvrir(Myfile.dat &amp; # 39;, &amp; # 39; wb &amp; # 39;) comme fh:\n    fh.écrire(&amp; # 39; Mes détails &amp; # 39;)","Dans l&#39;exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L&#39;API du gestionnaire de contexte comprend deux méthodes:","Méthode __entrer__ appelé en entrant dans le bloc avec. Retourne l&#39;objet qui reçoit le paramètre spécifié par comme,\nMéthode __sortie__ appelé lorsque le contrôle quitte le bloc avec.","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\n@contextmanager\ndef mon_context():\n    essayer:\n        rendement ma valeur  # valeur pour as\n    sauf Myerror, e:\n        # gestion des exceptions\n    enfin:\n        # exécuté avec aucun résultat","Module abc[[[[régner | éditer le code]\nLe 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&#39;heure, le tableau, le tas, la file d&#39;attente, les références faibles et les types de base abstraits du module collections.","Module datetime[[[[régner | éditer le code]\nLe 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&#39;heures (timedelta) et le fuseau horaire (tzinfo)[7].","L&#39;exemple suivant imprime une instance. date / heurequi fixe la date et l&#39;heure au moment de l&#39;appel de la méthode à présent ():","&gt;&gt;&gt; importation date / heure\n&gt;&gt;&gt; date / heure.date / heure.à présent()\ndate / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)","Module Collections[[[[régner | éditer le code]\nCe module comprend un ensemble de types de données spéciaux &#8211; des conteneurs qui complètent les types standard intégrés. dict, liste, ensemble et tuple. Par exemple pour Python 2.7: OrdreDict &#8211; dictionnaire ordonné (dans l&#39;ordre d&#39;ajout d&#39;éléments), defaultdict &#8211; un dictionnaire qui appelle une fonction donnée pour un élément qui n&#39;y est pas, Compteur &#8211; un dictionnaire pratique à utiliser pour compter les mots, Deque &#8211; liste doublement liée nommétuple &#8211; un tuple avec la possibilité d&#39;accéder aux éléments par noms d&#39;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:","&gt;&gt;&gt; de collections importation deque\n&gt;&gt;&gt; ré = deque(&amp; # 39; 123 &amp; # 39;)\n&gt;&gt;&gt; ré[[[[un]\n&amp; # 39; 2 &amp; # 39;\n&gt;&gt;&gt; ré.pop()\n&amp; # 39; 3 &amp; # 39;\n&gt;&gt;&gt; ré.appendice arrière(&amp; # 39; 0 &amp; # 39;)\n&gt;&gt;&gt; liste(ré)\n[[[[&amp; # 39; 0 &amp; # 39;, &amp; # 39; un &amp; # 39;, &amp; # 39; 2 &amp; # 39;]","Exemple de tuple nommé pour un point dans un espace tridimensionnel:","&gt;&gt;&gt; de collections importation nommétuple\n&gt;&gt;&gt; Point = nommétuple(&amp; # 39; Point &amp; # 39;, [[[[&amp; # 39; x &amp; # 39;, &amp; # 39; y &amp; # 39;, &amp; # 39; z &amp; # 39;])  # Définir le point de classe\n&gt;&gt;&gt; une = Point(1,0, 2.0, 3.0)  # Instance de point\n&gt;&gt;&gt; une.X + une.y + une.z  # Accès par attributs\n6.0\n&gt;&gt;&gt; une  # Cela ressemble à l&#39;impression\nPoint(X=1,0, y=2.0, z=3.0)\n&gt;&gt;&gt; une + (4.0, 5.0)  # Fonctionne comme un tuple\n(1,0, 2.0, 3.0, 4.0, 5.0)","En Python 3.3, une classe est apparue Carte de la chaînequi vous permet de créer des dictionnaires imbriqués[10].","Exemple dans lequel la recherche d&#39;une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:","&gt;&gt;&gt; local_cfg = &amp; # 39; a &amp; # 39;: quatre\n&gt;&gt;&gt; user_cfg = &amp; # 39; a &amp; # 39;: cinq\n&gt;&gt;&gt; system_cfg = &amp; # 39; a &amp; # 39;: cinq, &amp; # 39; b &amp; # 39;: Dix\n&gt;&gt;&gt; cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n&gt;&gt;&gt; local_cfg[[[[&amp; # 39; b &amp; # 39;] = Dix\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)","Module Os[[[[régner | éditer le code]\nLe 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&#39;environnement)[11].","Module Os.path[[[[régner | éditer le code]\nLe module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l&#39;utilisation de certaines fonctions du module:","&gt;&gt;&gt; importation os.path\n&gt;&gt;&gt; os.chemin.joindre(&quot;/ tmp / 1&quot;, &quot;temp.file&quot;)  # concaténation de chemins\n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.nom de répertoire(&quot;/tmp/1/temp.file&quot;)  # nom du répertoire donné un chemin complet\n&amp; # 39; / tmp / 1 &amp; # 39;\n&gt;&gt;&gt; os.chemin.nom de base(&quot;/tmp/1/temp.file&quot;)  # nom de fichier pour le chemin complet donné\n&amp; # 39; temp.file &amp; # 39;\n&gt;&gt;&gt; os.chemin.normpath(&quot;/tmp//2/../1/temp.file&quot;)  # normalisation de chemin \n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.existe(&quot;/tmp/1/temp.file&quot;)  # y a-t-il un moyen?\nFaux","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]\nLe module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:\nascii_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.","&gt;&gt;&gt; de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres\n&gt;&gt;&gt; ascii_letters\n&amp; # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; ascii_lowercase\nAbcdefghijklmnopqrstuvwxyz &amp; # 39;\n&gt;&gt;&gt; ascii_uppercase\n&amp; # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; chiffres\n0123456789 &amp; # 39;","Créer un mot de passe:","&gt;&gt;&gt; caractères = ascii_letters + chiffres\n&gt;&gt;&gt; de au hasard importation choix\n&gt;&gt;&gt; n = huit                            # longueur du mot de passe\n&gt;&gt;&gt; &amp; # 39; &amp; # 39;.joindre(choix(caractères) pour _ dans intervalle(n))\n&amp; # 39; ia1KGm2t &amp; # 39;","Pour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle. L&#39;exemple illustre les méthodes remplacer et safe_substitute:","&gt;&gt;&gt; de chaîne importation Modèle\n&gt;&gt;&gt; tpl = Modèle(&quot;&quot; &quot;$ name a $ montant $$. oh&quot; &quot;&quot;)\n&gt;&gt;&gt; tpl.remplacer(&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n&gt;&gt;&gt; tpl.safe_substitute(&quot;montant&quot;: 100)\n$ Name a 100 €. Oh &amp; # 39;\n&gt;&gt;&gt; # Pour la comparaison de syntaxe, la méthode de formatage d&#39;une chaîne: \n&gt;&gt;&gt; &quot;&quot; &quot;name a montant $. oh&quot; &quot;&quot;.format(**&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;","Support des expressions régulières: re module[[[[régner | éditer le code]\nLes 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&#39;expression régulière compilée et le résultat de la comparaison. Exemple:","&gt;&gt;&gt; importation ré\n&gt;&gt;&gt; compiled_re = ré.compiler(r&quot;[a-b][0-9]* &quot;)\n&gt;&gt;&gt; [[[[m.groupe(0) pour m dans compiled_re.chercheur(&quot;A1 c123 a12, b abc (b987).&quot;)]\n[[[[&amp; # 39; a12 &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; a &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; b987 &amp; # 39;]","Travailler avec des structures d&#39;octets dans le module struct[[[[régner | éditer le code]\nLe module struct est utilisé pour convertir les données à partir de chaînes d&#39;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.\nLes fonctions pack et déballer vous permettent de «compresser» et de «décompresser» des données en fonction d&#39;une chaîne de formatage composée de leurs codes de formatage, par exemple:","&gt;&gt;&gt; de struct importation pack, déballer\n&gt;&gt;&gt; pack(&amp; # 39; hh &amp; # 39;, un, 2)  # h - code entier court avec signe\n&amp; # 39; x01  x00  x02  x00&amp; # 39;\n&gt;&gt;&gt; déballer(&amp; # 39; bbbb &amp; # 39;, &amp; # 39; ABCD &amp; # 39;)  # b correspond à un caractère signé\n(65, 66, 67, 68)","L&#39;ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:","&gt;&gt;&gt; pack(&amp; # 39 ;! l &amp; # 39;, 1025)  # réseau (du plus vieux au plus jeune, big-endian)\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39;&gt; l &amp; # 39;, 1025)  # de senior à junior, big-endian\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39; &lt;l &amp; # 39;, 1025)  # de junior à senior, little-endian\n&amp; # 39; x01  x04  x00  x00&amp; # 39;","Le module définit également la classe. Structdont les méthodes correspondent aux fonctions du module.","CSV[[[[régner | éditer le code]\nUn module est conçu pour lire et écrire un fichier CSV. CSV.\nCe 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).\nL&#39;exemple le plus simple est:","importation CSV\nlecteur = CSV.lecteur(ouvrir(&quot;some.csv&quot;, &quot;rb&quot;))\npour rangée dans lecteur:\n    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 &#8211; |symbole de citation &#8211; ` (au lieu &quot; défaut).","un importation CSV\n2 \n3 avec ouvrir(&quot;some.csv&quot;, &quot;wb&quot;) comme csv_fh:\nquatre     écrivain = CSV.écrivain(csv_fh, délimiteur=&amp; # 39;: &amp; # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=&amp; # 39; &amp; # 39; &amp; # 39;, linererminator=&amp; # 39; | &amp; # 39;)\ncinq     écrivain.écrivains([[[[\n6                       [[[[1997, &quot;Gué&quot;,  &quot;E350&quot;, &quot;ac, abs, lune&quot;, &quot;3000.00&quot;],\n7                       [[[[1999, &quot;Chevy&quot;, &quot;Venture` Extended Edition`&quot;, &quot;&quot;, &quot;4900.00&quot;],\nhuit                       [[[[1996, &quot;Jeep&quot;,  &quot;Grand Cherokee&quot;, &quot;air, toit ouvrant, chargé DOIT VENDRE!&quot;, &quot;4799.00&quot;] \n9                     ])","Travailler avec des archives de fichiers[[[[régner | éditer le code]\nLa bibliothèque standard prend en charge plusieurs formats d&#39;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]\nDans l&#39;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&#39;utilisation du gestionnaire de contexte.","de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; w &amp; # 39;) comme ziparc:\n     ziparc.écrivain(&amp; # 39; fichier.txt &amp; # 39;, &amp; # 39; texte dans le fichier &amp; # 39;)","La lecture des archives est similaire. L&#39;exemple suivant imprime les noms de fichier contenus dans l&#39;archive:","de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; r &amp; # 39;) comme ziparc:\n     pour fileinfo dans ziparc.liste de fichiers:\n         impression(fileinfo.nom de fichier)","Fichiers de configuration[[[[régner | éditer le code]\nLe 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\nfoodir =% (dir) s / quel que soit\ndir = frob\nversion: 1.0","En tant que clé de séparation, une valeur peut être utilisée &quot;=&quot; ou &quot;:&quot;. 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 &quot;#&quot;, est considéré comme un commentaire et est ignoré par les analyseurs.","Les informations contenues dans cette section sont obsolètes.\nVous pouvez aider le projet en le mettant à jour puis en supprimant le modèle.","Pour diverses raisons (y compris politiques &#8211; dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l&#39;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 &#8211; toutes les fonctions de hachage sont assemblées dans un module. hashlib et supprimé les modules de chiffrement non cryptographiques inutiles.\nPremiers 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 &#8211; 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é &#8211; elles ont été créées avant l&#39;écriture de CryptoAPI ou parce qu&#39;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:","&gt;&gt;&gt; importation hashlib\n &gt;&gt;&gt; m = hashlib.Nouveau(&amp; # 39; md5 &amp; # 39;)      # créer un nouvel objet de hachage avec la fonction MD5\n &gt;&gt;&gt; m = hashlib.md5()           soit si\n &gt;&gt;&gt; m.mettre à jour(&quot;données de test&quot;)       # ajouter des données\n &gt;&gt;&gt; m.digérer()\n &amp; # 39; xebs: x00  xc0  xc9  xd36 xe6V x91  xa3z xb5B x93&amp; # 39;\n &gt;&gt;&gt; m.hexdigest()\n &amp; # 39; e733a00c0c9d336e65691a37ab54293 &amp; # 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&#39;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]\nEmail[[[[régner | éditer le code]\nModule smtplib[[[[régner | éditer le code]\nLe module est conçu pour envoyer des courriers électroniques via le protocole SMTP.","importation smtplib","def send_email(texte):\n    serveur = smtplib.SMTP(&quot;smtp.server&quot;, 587)  # connecter au serveur\n    serveur.ehlo()\n    serveur.débuts()\n    serveur.s&#39;identifier(&quot;s&#39;identifier&quot;, &quot;mot de passe&quot;)  Se connecter au serveur\n    message = &quot; r  n&quot;.joindre([[[[   # formulaire Email avec champs\n        &quot;De: de&quot;, \n        &quot;To: to&quot;, \n        &quot;Sujet: Sujet&quot;, \n        &quot;&quot;, \n        texte,\n        ])\n    serveur.envoyer un mail(&quot;login @ server&quot;, &quot;Adresse e-mail du destinataire&quot;, message)  # envoyer\n    serveur.quitter()  se déconnecter du serveur","send_email(&amp; # 39; Bonjour le monde! &amp; # 39;)","Bases de données simples[[[[régner | éditer le code]\nPython 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]:","&gt;&gt;&gt; importation dumbdbm\n&gt;&gt;&gt; ré = dumbdbm.ouvrir(&amp; # 39; my.db &amp; # 39;, &amp; # 39; w &amp; # 39;)  # fichier de base de données ouvert\n&gt;&gt;&gt; ré[[[[&amp; # 39; clé &amp; # 39;] = &amp; # 39; valeur &amp; # 39;              # attribuer une valeur par clé\n&gt;&gt;&gt; v = ré[[[[&amp; # 39; clé &amp; # 39;]                    # obtenir de la valeur par clé\n&gt;&gt;&gt; ré.synchroniser()                        changements d&#39;enregistrement\n&gt;&gt;&gt; ré.Fermer()                       # fermer la base de données","Pour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger (Rus &quot;mettre sur l&#39;étagère&quot;).","Sqlite[[[[régner | éditer le code]\nSQLite 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\n    2 Connecticut = sqlite3.relier(&amp; # 39; exemple.db &amp; # 39;)\n    3 c = Connecticut.le curseur()\n    quatre \n    cinq # Créer une table\n    6 c.exécuter(&amp; # 39; &amp; # 39; Actions CREATE TABLE\n    7                                                     (date, texte trans, texte du symbole, quantité réelle, prix réel) &amp; # 39; &amp; # 39; &amp; # 39; &amp; # 39;)\n    huit \n    9 # Insérer une ligne\nDix c.exécuter(&quot;INSERT INTO stocks&quot; (2006-01-05, &quot;ACHETER&quot;, &quot;RHAT&quot;, 100,35.14) &quot;)\nOnze \n12 # Enregistrer (et écrire) les modifications\n13 Connecticut.commettre()\n14 \n15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB\nseize Connecticut.Fermer()","Support au développement logiciel[[[[régner | éditer le code]\nModule filetage fournit une classe Filcorrespondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé et Rlock, Minuteursémaphores Sémaphore et Sémaphore Boundedvariable de condition Étatun événement un événement. En outre, pour la mise en file d&#39;attente &#8211; FIFO, LIFO, la file d&#39;attente prioritaire &#8211; le module est utilisé queue (Queue en python 2).","Python n&#39;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&#39;interprète global, GIL) limite sérieusement l&#39;utilité de l&#39;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 &#8211; utilitaires de gestion de contexte (eng.). La date d&#39;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&#39;exécution Python, classes de base abstraites","↑ Types de données &#8211; 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 &#8211; 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. &#8211; 4ème édition. &#8211; Addison-Wesley Professional, 2009. &#8211; 717 с. &#8211; ISBN 978-0672329784.\nDoug Hellmann. La bibliothèque standard Python par exemple. &#8211; Addison-Wesley Professional, 2011. &#8211; 1344 с. &#8211; ISBN 978-0321767349.\nFredrik Lundh. Bibliothèque standard Python. &#8211; O &amp; # 39; Reilly Media, 2001. &#8211; 281 с. &#8211; ISBN 978-0596000967.\nTarek Ziadé. Programmation Expert Python. &#8211; Packt Publishing Ltd., 2008. &#8211; 372 с. &#8211; ISBN 978-1-847194-94-7.\nПрохоренок Н. А. Python. Самое необходимое .. &#8211; В-Петербург, 2011. &#8211; 416 с. &#8211; ISBN 978-5-9775-0614-4.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"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&#39;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.","html":"<p>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&#039;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.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Module système[[[[régner | éditer le code]\nCe module contient des fonctions et des constantes pour interagir avec l&#39;interpréteur Python. Ce module, y compris, contient les variables suivantes:","html":"<p>Module système[[[[régner | éditer le code]\nCe module contient des fonctions et des constantes pour interagir avec l&#039;interpréteur Python. Ce module, y compris, contient les variables suivantes:</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"argv &#8211; arguments en ligne de commande,\nbyteorder &#8211; l&#39;ordre des octets de la plate-forme, &amp; # 39; peu &amp; # 39; ou &amp; # 39; grand &amp; # 39;,\ndrapeaux &#8211; un objet qui fournit sous la forme d&#39;attributs des informations sur les indicateurs donnés à l&#39;interpréteur. Par exemple, sys.flags.debug parle de mode débogage,\nmaxint &#8211; nombre entier maximum,\nPlate-forme &#8211; l&#39;identifiant de la plateforme, par exemple, &amp; # 39; linux-i386 &amp; # 39 ;,\nstdin, stdout, stderr &#8211; entrée standard, sortie et sortie d&#39;erreur,\nversion &#8211; ligne avec version","html":"<p>argv &#8211; arguments en ligne de commande,\nbyteorder &#8211; l&#039;ordre des octets de la plate-forme, &amp; # 39; peu &amp; # 39; ou &amp; # 39; grand &amp; # 39;,\ndrapeaux &#8211; un objet qui fournit sous la forme d&#039;attributs des informations sur les indicateurs donnés à l&#039;interpréteur. Par exemple, sys.flags.debug parle de mode débogage,\nmaxint &#8211; nombre entier maximum,\nPlate-forme &#8211; l&#039;identifiant de la plateforme, par exemple, &amp; # 39; linux-i386 &amp; # 39 ;,\nstdin, stdout, stderr &#8211; entrée standard, sortie et sortie d&#039;erreur,\nversion &#8211; ligne avec version</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"autre.","html":"<p>autre.</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Le module contient également plusieurs fonctions.[1].","html":"<p>Le module contient également plusieurs fonctions.[1].</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Module contextuel[[[[régner | éditer le code]\nLe module contient des fonctions de support pour le support opérateur. avec[2][3].","html":"<p>Module contextuel[[[[régner | éditer le code]\nLe module contient des fonctions de support pour le support opérateur. avec[2][3].</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Exemple d&#39;utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:","html":"<p>Exemple d&#039;utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"avec ouvrir(Myfile.dat &amp; # 39;, &amp; # 39; wb &amp; # 39;) comme fh:\n    fh.écrire(&amp; # 39; Mes détails &amp; # 39;)","html":"<p>avec ouvrir(Myfile.dat &amp; # 39;, &amp; # 39; wb &amp; # 39;) comme fh:\n    fh.écrire(&amp; # 39; Mes détails &amp; # 39;)</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Dans l&#39;exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L&#39;API du gestionnaire de contexte comprend deux méthodes:","html":"<p>Dans l&#039;exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L&#039;API du gestionnaire de contexte comprend deux méthodes:</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Méthode __entrer__ appelé en entrant dans le bloc avec. Retourne l&#39;objet qui reçoit le paramètre spécifié par comme,\nMéthode __sortie__ appelé lorsque le contrôle quitte le bloc avec.","html":"<p>Méthode __entrer__ appelé en entrant dans le bloc avec. Retourne l&#039;objet qui reçoit le paramètre spécifié par comme,\nMéthode __sortie__ appelé lorsque le contrôle quitte le bloc avec.</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Module contextlib propose un décorateur pour créer un gestionnaire de contexte basé sur le générateur:","html":"<p>Module contextlib propose un décorateur pour créer un gestionnaire de contexte basé sur le générateur:</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"de contextlib importation gestionnaire de contexte\n@contextmanager\ndef mon_context():\n    essayer:\n        rendement ma valeur  # valeur pour as\n    sauf Myerror, e:\n        # gestion des exceptions\n    enfin:\n        # exécuté avec aucun résultat","html":"<p>de contextlib importation gestionnaire de contexte\n@contextmanager\ndef mon_context():\n    essayer:\n        rendement ma valeur  # valeur pour as\n    sauf Myerror, e:\n        # gestion des exceptions\n    enfin:\n        # exécuté avec aucun résultat</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Module abc[[[[régner | éditer le code]\nLe 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].","html":"<p>Module abc[[[[régner | éditer le code]\nLe 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].</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"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&#39;heure, le tableau, le tas, la file d&#39;attente, les références faibles et les types de base abstraits du module collections.","html":"<p>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&#039;heure, le tableau, le tas, la file d&#039;attente, les références faibles et les types de base abstraits du module collections.</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"Module datetime[[[[régner | éditer le code]\nLe 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&#39;heures (timedelta) et le fuseau horaire (tzinfo)[7].","html":"<p>Module datetime[[[[régner | éditer le code]\nLe 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&#039;heures (timedelta) et le fuseau horaire (tzinfo)[7].</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"L&#39;exemple suivant imprime une instance. date / heurequi fixe la date et l&#39;heure au moment de l&#39;appel de la méthode à présent ():","html":"<p>L&#039;exemple suivant imprime une instance. date / heurequi fixe la date et l&#039;heure au moment de l&#039;appel de la méthode à présent ():</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"&gt;&gt;&gt; importation date / heure\n&gt;&gt;&gt; date / heure.date / heure.à présent()\ndate / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)","html":"<p>&gt;&gt;&gt; importation date / heure\n&gt;&gt;&gt; date / heure.date / heure.à présent()\ndate / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"Module Collections[[[[régner | éditer le code]\nCe module comprend un ensemble de types de données spéciaux &#8211; des conteneurs qui complètent les types standard intégrés. dict, liste, ensemble et tuple. Par exemple pour Python 2.7: OrdreDict &#8211; dictionnaire ordonné (dans l&#39;ordre d&#39;ajout d&#39;éléments), defaultdict &#8211; un dictionnaire qui appelle une fonction donnée pour un élément qui n&#39;y est pas, Compteur &#8211; un dictionnaire pratique à utiliser pour compter les mots, Deque &#8211; liste doublement liée nommétuple &#8211; un tuple avec la possibilité d&#39;accéder aux éléments par noms d&#39;attributs. Il existe également des classes de base abstraites. Conteneur, séquence, ensemble, cartographie autre[8][9].","html":"<p>Module Collections[[[[régner | éditer le code]\nCe module comprend un ensemble de types de données spéciaux &#8211; des conteneurs qui complètent les types standard intégrés. dict, liste, ensemble et tuple. Par exemple pour Python 2.7: OrdreDict &#8211; dictionnaire ordonné (dans l&#039;ordre d&#039;ajout d&#039;éléments), defaultdict &#8211; un dictionnaire qui appelle une fonction donnée pour un élément qui n&#039;y est pas, Compteur &#8211; un dictionnaire pratique à utiliser pour compter les mots, Deque &#8211; liste doublement liée nommétuple &#8211; un tuple avec la possibilité d&#039;accéder aux éléments par noms d&#039;attributs. Il existe également des classes de base abstraites. Conteneur, séquence, ensemble, cartographie autre[8][9].</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"Un exemple montrant comment travailler avec un deck:","html":"<p>Un exemple montrant comment travailler avec un deck:</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"&gt;&gt;&gt; de collections importation deque\n&gt;&gt;&gt; ré = deque(&amp; # 39; 123 &amp; # 39;)\n&gt;&gt;&gt; ré[[[[un]\n&amp; # 39; 2 &amp; # 39;\n&gt;&gt;&gt; ré.pop()\n&amp; # 39; 3 &amp; # 39;\n&gt;&gt;&gt; ré.appendice arrière(&amp; # 39; 0 &amp; # 39;)\n&gt;&gt;&gt; liste(ré)\n[[[[&amp; # 39; 0 &amp; # 39;, &amp; # 39; un &amp; # 39;, &amp; # 39; 2 &amp; # 39;]","html":"<p>&gt;&gt;&gt; de collections importation deque\n&gt;&gt;&gt; ré = deque(&amp; # 39; 123 &amp; # 39;)\n&gt;&gt;&gt; ré[[[[un]\n&amp; # 39; 2 &amp; # 39;\n&gt;&gt;&gt; ré.pop()\n&amp; # 39; 3 &amp; # 39;\n&gt;&gt;&gt; ré.appendice arrière(&amp; # 39; 0 &amp; # 39;)\n&gt;&gt;&gt; liste(ré)\n[[[[&amp; # 39; 0 &amp; # 39;, &amp; # 39; un &amp; # 39;, &amp; # 39; 2 &amp; # 39;]</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"Exemple de tuple nommé pour un point dans un espace tridimensionnel:","html":"<p>Exemple de tuple nommé pour un point dans un espace tridimensionnel:</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"&gt;&gt;&gt; de collections importation nommétuple\n&gt;&gt;&gt; Point = nommétuple(&amp; # 39; Point &amp; # 39;, [[[[&amp; # 39; x &amp; # 39;, &amp; # 39; y &amp; # 39;, &amp; # 39; z &amp; # 39;])  # Définir le point de classe\n&gt;&gt;&gt; une = Point(1,0, 2.0, 3.0)  # Instance de point\n&gt;&gt;&gt; une.X + une.y + une.z  # Accès par attributs\n6.0\n&gt;&gt;&gt; une  # Cela ressemble à l&#39;impression\nPoint(X=1,0, y=2.0, z=3.0)\n&gt;&gt;&gt; une + (4.0, 5.0)  # Fonctionne comme un tuple\n(1,0, 2.0, 3.0, 4.0, 5.0)","html":"<p>&gt;&gt;&gt; de collections importation nommétuple\n&gt;&gt;&gt; Point = nommétuple(&amp; # 39; Point &amp; # 39;, [[[[&amp; # 39; x &amp; # 39;, &amp; # 39; y &amp; # 39;, &amp; # 39; z &amp; # 39;])  # Définir le point de classe\n&gt;&gt;&gt; une = Point(1,0, 2.0, 3.0)  # Instance de point\n&gt;&gt;&gt; une.X + une.y + une.z  # Accès par attributs\n6.0\n&gt;&gt;&gt; une  # Cela ressemble à l&#039;impression\nPoint(X=1,0, y=2.0, z=3.0)\n&gt;&gt;&gt; une + (4.0, 5.0)  # Fonctionne comme un tuple\n(1,0, 2.0, 3.0, 4.0, 5.0)</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"En Python 3.3, une classe est apparue Carte de la chaînequi vous permet de créer des dictionnaires imbriqués[10].","html":"<p>En Python 3.3, une classe est apparue Carte de la chaînequi vous permet de créer des dictionnaires imbriqués[10].</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"Exemple dans lequel la recherche d&#39;une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:","html":"<p>Exemple dans lequel la recherche d&#039;une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"&gt;&gt;&gt; local_cfg = &amp; # 39; a &amp; # 39;: quatre\n&gt;&gt;&gt; user_cfg = &amp; # 39; a &amp; # 39;: cinq\n&gt;&gt;&gt; system_cfg = &amp; # 39; a &amp; # 39;: cinq, &amp; # 39; b &amp; # 39;: Dix\n&gt;&gt;&gt; cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n&gt;&gt;&gt; local_cfg[[[[&amp; # 39; b &amp; # 39;] = Dix\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)","html":"<p>&gt;&gt;&gt; local_cfg = &amp; # 39; a &amp; # 39;: quatre\n&gt;&gt;&gt; user_cfg = &amp; # 39; a &amp; # 39;: cinq\n&gt;&gt;&gt; system_cfg = &amp; # 39; a &amp; # 39;: cinq, &amp; # 39; b &amp; # 39;: Dix\n&gt;&gt;&gt; cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n&gt;&gt;&gt; local_cfg[[[[&amp; # 39; b &amp; # 39;] = Dix\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"Module Os[[[[régner | éditer le code]\nLe 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&#39;environnement)[11].","html":"<p>Module Os[[[[régner | éditer le code]\nLe 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&#039;environnement)[11].</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Module Os.path[[[[régner | éditer le code]\nLe module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l&#39;utilisation de certaines fonctions du module:","html":"<p>Module Os.path[[[[régner | éditer le code]\nLe module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l&#039;utilisation de certaines fonctions du module:</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"&gt;&gt;&gt; importation os.path\n&gt;&gt;&gt; os.chemin.joindre(&quot;/ tmp / 1&quot;, &quot;temp.file&quot;)  # concaténation de chemins\n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.nom de répertoire(&quot;/tmp/1/temp.file&quot;)  # nom du répertoire donné un chemin complet\n&amp; # 39; / tmp / 1 &amp; # 39;\n&gt;&gt;&gt; os.chemin.nom de base(&quot;/tmp/1/temp.file&quot;)  # nom de fichier pour le chemin complet donné\n&amp; # 39; temp.file &amp; # 39;\n&gt;&gt;&gt; os.chemin.normpath(&quot;/tmp//2/../1/temp.file&quot;)  # normalisation de chemin \n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.existe(&quot;/tmp/1/temp.file&quot;)  # y a-t-il un moyen?\nFaux","html":"<p>&gt;&gt;&gt; importation os.path\n&gt;&gt;&gt; os.chemin.joindre(&quot;/ tmp / 1&quot;, &quot;temp.file&quot;)  # concaténation de chemins\n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.nom de répertoire(&quot;/tmp/1/temp.file&quot;)  # nom du répertoire donné un chemin complet\n&amp; # 39; / tmp / 1 &amp; # 39;\n&gt;&gt;&gt; os.chemin.nom de base(&quot;/tmp/1/temp.file&quot;)  # nom de fichier pour le chemin complet donné\n&amp; # 39; temp.file &amp; # 39;\n&gt;&gt;&gt; os.chemin.normpath(&quot;/tmp//2/../1/temp.file&quot;)  # normalisation de chemin \n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.existe(&quot;/tmp/1/temp.file&quot;)  # y a-t-il un moyen?\nFaux</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"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].","html":"<p>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].</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Constantes et fonctions utiles du module chaîne[[[[régner | éditer le code]\nLe module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:\nascii_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.","html":"<p>Constantes et fonctions utiles du module chaîne[[[[régner | éditer le code]\nLe module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:\nascii_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.</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"&gt;&gt;&gt; de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres\n&gt;&gt;&gt; ascii_letters\n&amp; # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; ascii_lowercase\nAbcdefghijklmnopqrstuvwxyz &amp; # 39;\n&gt;&gt;&gt; ascii_uppercase\n&amp; # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; chiffres\n0123456789 &amp; # 39;","html":"<p>&gt;&gt;&gt; de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres\n&gt;&gt;&gt; ascii_letters\n&amp; # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; ascii_lowercase\nAbcdefghijklmnopqrstuvwxyz &amp; # 39;\n&gt;&gt;&gt; ascii_uppercase\n&amp; # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; chiffres\n0123456789 &amp; # 39;</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"Créer un mot de passe:","html":"<p>Créer un mot de passe:</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"&gt;&gt;&gt; caractères = ascii_letters + chiffres\n&gt;&gt;&gt; de au hasard importation choix\n&gt;&gt;&gt; n = huit                            # longueur du mot de passe\n&gt;&gt;&gt; &amp; # 39; &amp; # 39;.joindre(choix(caractères) pour _ dans intervalle(n))\n&amp; # 39; ia1KGm2t &amp; # 39;","html":"<p>&gt;&gt;&gt; caractères = ascii_letters + chiffres\n&gt;&gt;&gt; de au hasard importation choix\n&gt;&gt;&gt; n = huit                            # longueur du mot de passe\n&gt;&gt;&gt; &amp; # 39; &amp; # 39;.joindre(choix(caractères) pour _ dans intervalle(n))\n&amp; # 39; ia1KGm2t &amp; # 39;</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"Pour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle. L&#39;exemple illustre les méthodes remplacer et safe_substitute:","html":"<p>Pour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle. L&#039;exemple illustre les méthodes remplacer et safe_substitute:</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"&gt;&gt;&gt; de chaîne importation Modèle\n&gt;&gt;&gt; tpl = Modèle(&quot;&quot; &quot;$ name a $ montant $$. oh&quot; &quot;&quot;)\n&gt;&gt;&gt; tpl.remplacer(&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n&gt;&gt;&gt; tpl.safe_substitute(&quot;montant&quot;: 100)\n$ Name a 100 €. Oh &amp; # 39;\n&gt;&gt;&gt; # Pour la comparaison de syntaxe, la méthode de formatage d&#39;une chaîne: \n&gt;&gt;&gt; &quot;&quot; &quot;name a montant $. oh&quot; &quot;&quot;.format(**&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;","html":"<p>&gt;&gt;&gt; de chaîne importation Modèle\n&gt;&gt;&gt; tpl = Modèle(&quot;&quot; &quot;$ name a $ montant $$. oh&quot; &quot;&quot;)\n&gt;&gt;&gt; tpl.remplacer(&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n&gt;&gt;&gt; tpl.safe_substitute(&quot;montant&quot;: 100)\n$ Name a 100 €. Oh &amp; # 39;\n&gt;&gt;&gt; # Pour la comparaison de syntaxe, la méthode de formatage d&#039;une chaîne: \n&gt;&gt;&gt; &quot;&quot; &quot;name a montant $. oh&quot; &quot;&quot;.format(**&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"Support des expressions régulières: re module[[[[régner | éditer le code]\nLes 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&#39;expression régulière compilée et le résultat de la comparaison. Exemple:","html":"<p>Support des expressions régulières: re module[[[[régner | éditer le code]\nLes 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&#039;expression régulière compilée et le résultat de la comparaison. Exemple:</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"&gt;&gt;&gt; importation ré\n&gt;&gt;&gt; compiled_re = ré.compiler(r&quot;[a-b][0-9]* &quot;)\n&gt;&gt;&gt; [[[[m.groupe(0) pour m dans compiled_re.chercheur(&quot;A1 c123 a12, b abc (b987).&quot;)]\n[[[[&amp; # 39; a12 &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; a &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; b987 &amp; # 39;]","html":"<p>&gt;&gt;&gt; importation ré\n&gt;&gt;&gt; compiled_re = ré.compiler(r&quot;[a-b][0-9]* &quot;)\n&gt;&gt;&gt; [[[[m.groupe(0) pour m dans compiled_re.chercheur(&quot;A1 c123 a12, b abc (b987).&quot;)]\n[[[[&amp; # 39; a12 &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; a &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; b987 &amp; # 39;]</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"Travailler avec des structures d&#39;octets dans le module struct[[[[régner | éditer le code]\nLe module struct est utilisé pour convertir les données à partir de chaînes d&#39;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.\nLes fonctions pack et déballer vous permettent de «compresser» et de «décompresser» des données en fonction d&#39;une chaîne de formatage composée de leurs codes de formatage, par exemple:","html":"<p>Travailler avec des structures d&#039;octets dans le module struct[[[[régner | éditer le code]\nLe module struct est utilisé pour convertir les données à partir de chaînes d&#039;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.\nLes fonctions pack et déballer vous permettent de «compresser» et de «décompresser» des données en fonction d&#039;une chaîne de formatage composée de leurs codes de formatage, par exemple:</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"&gt;&gt;&gt; de struct importation pack, déballer\n&gt;&gt;&gt; pack(&amp; # 39; hh &amp; # 39;, un, 2)  # h - code entier court avec signe\n&amp; # 39; x01  x00  x02  x00&amp; # 39;\n&gt;&gt;&gt; déballer(&amp; # 39; bbbb &amp; # 39;, &amp; # 39; ABCD &amp; # 39;)  # b correspond à un caractère signé\n(65, 66, 67, 68)","html":"<p>&gt;&gt;&gt; de struct importation pack, déballer\n&gt;&gt;&gt; pack(&amp; # 39; hh &amp; # 39;, un, 2)  # h - code entier court avec signe\n&amp; # 39; x01  x00  x02  x00&amp; # 39;\n&gt;&gt;&gt; déballer(&amp; # 39; bbbb &amp; # 39;, &amp; # 39; ABCD &amp; # 39;)  # b correspond à un caractère signé\n(65, 66, 67, 68)</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"L&#39;ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:","html":"<p>L&#039;ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"&gt;&gt;&gt; pack(&amp; # 39 ;! l &amp; # 39;, 1025)  # réseau (du plus vieux au plus jeune, big-endian)\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39;&gt; l &amp; # 39;, 1025)  # de senior à junior, big-endian\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39; &lt;l &amp; # 39;, 1025)  # de junior à senior, little-endian\n&amp; # 39; x01  x04  x00  x00&amp; # 39;","html":"<p>&gt;&gt;&gt; pack(&amp; # 39 ;! l &amp; # 39;, 1025)  # réseau (du plus vieux au plus jeune, big-endian)\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39;&gt; l &amp; # 39;, 1025)  # de senior à junior, big-endian\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39; &lt;l &amp; # 39;, 1025)  # de junior à senior, little-endian\n&amp; # 39; x01  x04  x00  x00&amp; # 39;</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"Le module définit également la classe. Structdont les méthodes correspondent aux fonctions du module.","html":"<p>Le module définit également la classe. Structdont les méthodes correspondent aux fonctions du module.</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"CSV[[[[régner | éditer le code]\nUn module est conçu pour lire et écrire un fichier CSV. CSV.\nCe 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).\nL&#39;exemple le plus simple est:","html":"<p>CSV[[[[régner | éditer le code]\nUn module est conçu pour lire et écrire un fichier CSV. CSV.\nCe 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).\nL&#039;exemple le plus simple est:</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"importation CSV\nlecteur = CSV.lecteur(ouvrir(&quot;some.csv&quot;, &quot;rb&quot;))\npour rangée dans lecteur:\n    impression rangée","html":"<p>importation CSV\nlecteur = CSV.lecteur(ouvrir(&quot;some.csv&quot;, &quot;rb&quot;))\npour rangée dans lecteur:\n    impression rangée</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"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 &#8211; |symbole de citation &#8211; ` (au lieu &quot; défaut).","html":"<p>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 &#8211; |symbole de citation &#8211; ` (au lieu &quot; défaut).</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"un importation CSV\n2 \n3 avec ouvrir(&quot;some.csv&quot;, &quot;wb&quot;) comme csv_fh:\nquatre     écrivain = CSV.écrivain(csv_fh, délimiteur=&amp; # 39;: &amp; # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=&amp; # 39; &amp; # 39; &amp; # 39;, linererminator=&amp; # 39; | &amp; # 39;)\ncinq     écrivain.écrivains([[[[\n6                       [[[[1997, &quot;Gué&quot;,  &quot;E350&quot;, &quot;ac, abs, lune&quot;, &quot;3000.00&quot;],\n7                       [[[[1999, &quot;Chevy&quot;, &quot;Venture` Extended Edition`&quot;, &quot;&quot;, &quot;4900.00&quot;],\nhuit                       [[[[1996, &quot;Jeep&quot;,  &quot;Grand Cherokee&quot;, &quot;air, toit ouvrant, chargé DOIT VENDRE!&quot;, &quot;4799.00&quot;] \n9                     ])","html":"<p>un importation CSV\n2 \n3 avec ouvrir(&quot;some.csv&quot;, &quot;wb&quot;) comme csv_fh:\nquatre     écrivain = CSV.écrivain(csv_fh, délimiteur=&amp; # 39;: &amp; # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=&amp; # 39; &amp; # 39; &amp; # 39;, linererminator=&amp; # 39; | &amp; # 39;)\ncinq     écrivain.écrivains([[[[\n6                       [[[[1997, &quot;Gué&quot;,  &quot;E350&quot;, &quot;ac, abs, lune&quot;, &quot;3000.00&quot;],\n7                       [[[[1999, &quot;Chevy&quot;, &quot;Venture` Extended Edition`&quot;, &quot;&quot;, &quot;4900.00&quot;],\nhuit                       [[[[1996, &quot;Jeep&quot;,  &quot;Grand Cherokee&quot;, &quot;air, toit ouvrant, chargé DOIT VENDRE!&quot;, &quot;4799.00&quot;] \n9                     ])</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"Travailler avec des archives de fichiers[[[[régner | éditer le code]\nLa bibliothèque standard prend en charge plusieurs formats d&#39;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].","html":"<p>Travailler avec des archives de fichiers[[[[régner | éditer le code]\nLa bibliothèque standard prend en charge plusieurs formats d&#039;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].</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"Exemples pour Python 2.7 et 3.2[[[[régner | éditer le code]\nDans l&#39;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&#39;utilisation du gestionnaire de contexte.","html":"<p>Exemples pour Python 2.7 et 3.2[[[[régner | éditer le code]\nDans l&#039;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&#039;utilisation du gestionnaire de contexte.</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; w &amp; # 39;) comme ziparc:\n     ziparc.écrivain(&amp; # 39; fichier.txt &amp; # 39;, &amp; # 39; texte dans le fichier &amp; # 39;)","html":"<p>de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; w &amp; # 39;) comme ziparc:\n     ziparc.écrivain(&amp; # 39; fichier.txt &amp; # 39;, &amp; # 39; texte dans le fichier &amp; # 39;)</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"La lecture des archives est similaire. L&#39;exemple suivant imprime les noms de fichier contenus dans l&#39;archive:","html":"<p>La lecture des archives est similaire. L&#039;exemple suivant imprime les noms de fichier contenus dans l&#039;archive:</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; r &amp; # 39;) comme ziparc:\n     pour fileinfo dans ziparc.liste de fichiers:\n         impression(fileinfo.nom de fichier)","html":"<p>de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; r &amp; # 39;) comme ziparc:\n     pour fileinfo dans ziparc.liste de fichiers:\n         impression(fileinfo.nom de fichier)</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"Fichiers de configuration[[[[régner | éditer le code]\nLe 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:","html":"<p>Fichiers de configuration[[[[régner | éditer le code]\nLe 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:</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"[My Section]","html":"<p>[My Section]</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"# quelques commentaires\nfoodir =% (dir) s / quel que soit\ndir = frob\nversion: 1.0","html":"<p># quelques commentaires\nfoodir =% (dir) s / quel que soit\ndir = frob\nversion: 1.0</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"En tant que clé de séparation, une valeur peut être utilisée &quot;=&quot; ou &quot;:&quot;. 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 &quot;#&quot;, est considéré comme un commentaire et est ignoré par les analyseurs.","html":"<p>En tant que clé de séparation, une valeur peut être utilisée &quot;=&quot; ou &quot;:&quot;. 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 &quot;#&quot;, est considéré comme un commentaire et est ignoré par les analyseurs.</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"Les informations contenues dans cette section sont obsolètes.\nVous pouvez aider le projet en le mettant à jour puis en supprimant le modèle.","html":"<p>Les informations contenues dans cette section sont obsolètes.\nVous pouvez aider le projet en le mettant à jour puis en supprimant le modèle.</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Pour diverses raisons (y compris politiques &#8211; dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l&#39;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.","html":"<p>Pour diverses raisons (y compris politiques &#8211; dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l&#039;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.</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"Dans la version 2.5, la structure de la crypto-bibliothèque était unifiée &#8211; toutes les fonctions de hachage sont assemblées dans un module. hashlib et supprimé les modules de chiffrement non cryptographiques inutiles.\nPremiers modules md5, Hmac, sha déclaré obsolète et sera supprimé dans une version ultérieure.","html":"<p>Dans la version 2.5, la structure de la crypto-bibliothèque était unifiée &#8211; toutes les fonctions de hachage sont assemblées dans un module. hashlib et supprimé les modules de chiffrement non cryptographiques inutiles.\nPremiers modules md5, Hmac, sha déclaré obsolète et sera supprimé dans une version ultérieure.</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"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 &#8211; 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é &#8211; elles ont été créées avant l&#39;écriture de CryptoAPI ou parce qu&#39;elles sont générées automatiquement au-dessus des bibliothèques C correspondantes).","html":"<p>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 &#8211; 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é &#8211; elles ont été créées avant l&#039;écriture de CryptoAPI ou parce qu&#039;elles sont générées automatiquement au-dessus des bibliothèques C correspondantes).</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"Utiliser des bibliothèques compatibles avec CryptoAPI est très simple:","html":"<p>Utiliser des bibliothèques compatibles avec CryptoAPI est très simple:</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"&gt;&gt;&gt; importation hashlib\n &gt;&gt;&gt; m = hashlib.Nouveau(&amp; # 39; md5 &amp; # 39;)      # créer un nouvel objet de hachage avec la fonction MD5\n &gt;&gt;&gt; m = hashlib.md5()           soit si\n &gt;&gt;&gt; m.mettre à jour(&quot;données de test&quot;)       # ajouter des données\n &gt;&gt;&gt; m.digérer()\n &amp; # 39; xebs: x00  xc0  xc9  xd36 xe6V x91  xa3z xb5B x93&amp; # 39;\n &gt;&gt;&gt; m.hexdigest()\n &amp; # 39; e733a00c0c9d336e65691a37ab54293 &amp; # 39;","html":"<p>&gt;&gt;&gt; importation hashlib\n &gt;&gt;&gt; m = hashlib.Nouveau(&amp; # 39; md5 &amp; # 39;)      # créer un nouvel objet de hachage avec la fonction MD5\n &gt;&gt;&gt; m = hashlib.md5()           soit si\n &gt;&gt;&gt; m.mettre à jour(&quot;données de test&quot;)       # ajouter des données\n &gt;&gt;&gt; m.digérer()\n &amp; # 39; xebs: x00  xc0  xc9  xd36 xe6V x91  xa3z xb5B x93&amp; # 39;\n &gt;&gt;&gt; m.hexdigest()\n &amp; # 39; e733a00c0c9d336e65691a37ab54293 &amp; # 39;</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"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&#39;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.","html":"<p>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&#039;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.</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"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].","html":"<p>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].</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"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.","html":"<p>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.</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"Recevoir un fichier via HTTP (HTTPS)[[[[régner | éditer le code]\nEmail[[[[régner | éditer le code]\nModule smtplib[[[[régner | éditer le code]\nLe module est conçu pour envoyer des courriers électroniques via le protocole SMTP.","html":"<p>Recevoir un fichier via HTTP (HTTPS)[[[[régner | éditer le code]\nEmail[[[[régner | éditer le code]\nModule smtplib[[[[régner | éditer le code]\nLe module est conçu pour envoyer des courriers électroniques via le protocole SMTP.</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"importation smtplib","html":"<p>importation smtplib</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"def send_email(texte):\n    serveur = smtplib.SMTP(&quot;smtp.server&quot;, 587)  # connecter au serveur\n    serveur.ehlo()\n    serveur.débuts()\n    serveur.s&#39;identifier(&quot;s&#39;identifier&quot;, &quot;mot de passe&quot;)  Se connecter au serveur\n    message = &quot; r  n&quot;.joindre([[[[   # formulaire Email avec champs\n        &quot;De: de&quot;, \n        &quot;To: to&quot;, \n        &quot;Sujet: Sujet&quot;, \n        &quot;&quot;, \n        texte,\n        ])\n    serveur.envoyer un mail(&quot;login @ server&quot;, &quot;Adresse e-mail du destinataire&quot;, message)  # envoyer\n    serveur.quitter()  se déconnecter du serveur","html":"<p>def send_email(texte):\n    serveur = smtplib.SMTP(&quot;smtp.server&quot;, 587)  # connecter au serveur\n    serveur.ehlo()\n    serveur.débuts()\n    serveur.s&#039;identifier(&quot;s&#039;identifier&quot;, &quot;mot de passe&quot;)  Se connecter au serveur\n    message = &quot; r  n&quot;.joindre([[[[   # formulaire Email avec champs\n        &quot;De: de&quot;, \n        &quot;To: to&quot;, \n        &quot;Sujet: Sujet&quot;, \n        &quot;&quot;, \n        texte,\n        ])\n    serveur.envoyer un mail(&quot;login @ server&quot;, &quot;Adresse e-mail du destinataire&quot;, message)  # envoyer\n    serveur.quitter()  se déconnecter du serveur</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"send_email(&amp; # 39; Bonjour le monde! &amp; # 39;)","html":"<p>send_email(&amp; # 39; Bonjour le monde! &amp; # 39;)</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"Bases de données simples[[[[régner | éditer le code]\nPython 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].","html":"<p>Bases de données simples[[[[régner | éditer le code]\nPython 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].</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"Travailler avec un objet de base de données est similaire à travailler avec un dictionnaire Python (par exemple dumbdbm)[16]:","html":"<p>Travailler avec un objet de base de données est similaire à travailler avec un dictionnaire Python (par exemple dumbdbm)[16]:</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"&gt;&gt;&gt; importation dumbdbm\n&gt;&gt;&gt; ré = dumbdbm.ouvrir(&amp; # 39; my.db &amp; # 39;, &amp; # 39; w &amp; # 39;)  # fichier de base de données ouvert\n&gt;&gt;&gt; ré[[[[&amp; # 39; clé &amp; # 39;] = &amp; # 39; valeur &amp; # 39;              # attribuer une valeur par clé\n&gt;&gt;&gt; v = ré[[[[&amp; # 39; clé &amp; # 39;]                    # obtenir de la valeur par clé\n&gt;&gt;&gt; ré.synchroniser()                        changements d&#39;enregistrement\n&gt;&gt;&gt; ré.Fermer()                       # fermer la base de données","html":"<p>&gt;&gt;&gt; importation dumbdbm\n&gt;&gt;&gt; ré = dumbdbm.ouvrir(&amp; # 39; my.db &amp; # 39;, &amp; # 39; w &amp; # 39;)  # fichier de base de données ouvert\n&gt;&gt;&gt; ré[[[[&amp; # 39; clé &amp; # 39;] = &amp; # 39; valeur &amp; # 39;              # attribuer une valeur par clé\n&gt;&gt;&gt; v = ré[[[[&amp; # 39; clé &amp; # 39;]                    # obtenir de la valeur par clé\n&gt;&gt;&gt; ré.synchroniser()                        changements d&#039;enregistrement\n&gt;&gt;&gt; ré.Fermer()                       # fermer la base de données</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"Pour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger (Rus &quot;mettre sur l&#39;étagère&quot;).","html":"<p>Pour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger (Rus &quot;mettre sur l&#039;étagère&quot;).</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"Sqlite[[[[régner | éditer le code]\nSQLite 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.","html":"<p>Sqlite[[[[régner | éditer le code]\nSQLite 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.</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"Pour travailler avec la bibliothèque, vous devez créer un objet. Lien qui sert de base de données:","html":"<p>Pour travailler avec la bibliothèque, vous devez créer un objet. Lien qui sert de base de données:</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"un importation sqlite3\n    2 Connecticut = sqlite3.relier(&amp; # 39; exemple.db &amp; # 39;)\n    3 c = Connecticut.le curseur()\n    quatre \n    cinq # Créer une table\n    6 c.exécuter(&amp; # 39; &amp; # 39; Actions CREATE TABLE\n    7                                                     (date, texte trans, texte du symbole, quantité réelle, prix réel) &amp; # 39; &amp; # 39; &amp; # 39; &amp; # 39;)\n    huit \n    9 # Insérer une ligne\nDix c.exécuter(&quot;INSERT INTO stocks&quot; (2006-01-05, &quot;ACHETER&quot;, &quot;RHAT&quot;, 100,35.14) &quot;)\nOnze \n12 # Enregistrer (et écrire) les modifications\n13 Connecticut.commettre()\n14 \n15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB\nseize Connecticut.Fermer()","html":"<p>un importation sqlite3\n    2 Connecticut = sqlite3.relier(&amp; # 39; exemple.db &amp; # 39;)\n    3 c = Connecticut.le curseur()\n    quatre \n    cinq # Créer une table\n    6 c.exécuter(&amp; # 39; &amp; # 39; Actions CREATE TABLE\n    7                                                     (date, texte trans, texte du symbole, quantité réelle, prix réel) &amp; # 39; &amp; # 39; &amp; # 39; &amp; # 39;)\n    huit \n    9 # Insérer une ligne\nDix c.exécuter(&quot;INSERT INTO stocks&quot; (2006-01-05, &quot;ACHETER&quot;, &quot;RHAT&quot;, 100,35.14) &quot;)\nOnze \n12 # Enregistrer (et écrire) les modifications\n13 Connecticut.commettre()\n14 \n15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB\nseize Connecticut.Fermer()</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"Support au développement logiciel[[[[régner | éditer le code]\nModule filetage fournit une classe Filcorrespondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé et Rlock, Minuteursémaphores Sémaphore et Sémaphore Boundedvariable de condition Étatun événement un événement. En outre, pour la mise en file d&#39;attente &#8211; FIFO, LIFO, la file d&#39;attente prioritaire &#8211; le module est utilisé queue (Queue en python 2).","html":"<p>Support au développement logiciel[[[[régner | éditer le code]\nModule filetage fournit une classe Filcorrespondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé et Rlock, Minuteursémaphores Sémaphore et Sémaphore Boundedvariable de condition Étatun événement un événement. En outre, pour la mise en file d&#039;attente &#8211; FIFO, LIFO, la file d&#039;attente prioritaire &#8211; le module est utilisé queue (Queue en python 2).</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"Python n&#39;a pas les moyens de mettre fin ou de mettre en pause les threads, ni de libérer tous les verrous[17].","html":"<p>Python n&#039;a pas les moyens de mettre fin ou de mettre en pause les threads, ni de libérer tous les verrous[17].</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"La présence dans l’implémentation principale du verrou d’interprète global Python (eng. Verrou d&#39;interprète global, GIL) limite sérieusement l&#39;utilité de l&#39;informatique multithread dans le comptage des problèmes[18].","html":"<p>La présence dans l’implémentation principale du verrou d’interprète global Python (eng. Verrou d&#039;interprète global, GIL) limite sérieusement l&#039;utilité de l&#039;informatique multithread dans le comptage des problèmes[18].</p>"},{"id":"text-79","type":"text","heading":"","plain_text":"Le package Python standard comprend la bibliothèque graphique Tkinter.","html":"<p>Le package Python standard comprend la bibliothèque graphique Tkinter.</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 229-235.","html":"<p>↑ Beazley, 2009, p. 229-235.</p>"},{"id":"text-81","type":"text","heading":"","plain_text":"↑ Ziadé, 2008, p. 56-60.","html":"<p>↑ Ziadé, 2008, p. 56-60.</p>"},{"id":"text-82","type":"text","heading":"","plain_text":"↑ Doug Hellman. contextlib &#8211; utilitaires de gestion de contexte (eng.). La date d&#39;appel est le 30 août 2012. Archivé le 18 octobre 2012.","html":"<p>↑ Doug Hellman. contextlib &#8211; utilitaires de gestion de contexte (eng.). La date d&#039;appel est le 30 août 2012. Archivé le 18 octobre 2012.</p>"},{"id":"text-83","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 257-259.","html":"<p>↑ Beazley, 2009, p. 257-259.</p>"},{"id":"text-84","type":"text","heading":"","plain_text":"↑ Documentation Python v2.7, bibliothèque standard Python, services d&#39;exécution Python, classes de base abstraites","html":"<p>↑ Documentation Python v2.7, bibliothèque standard Python, services d&#039;exécution Python, classes de base abstraites</p>"},{"id":"text-85","type":"text","heading":"","plain_text":"↑ Types de données &#8211; Documentation Python 3","html":"<p>↑ Types de données &#8211; Documentation Python 3</p>"},{"id":"text-86","type":"text","heading":"","plain_text":"↑ Prokhorenok, 2011.","html":"<p>↑ Prokhorenok, 2011.</p>"},{"id":"text-87","type":"text","heading":"","plain_text":"↑ Ziadé, 2008, p. 303-306.","html":"<p>↑ Ziadé, 2008, p. 303-306.</p>"},{"id":"text-88","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 262-265.","html":"<p>↑ Beazley, 2009, p. 262-265.</p>"},{"id":"text-89","type":"text","heading":"","plain_text":"↑ Documentation Python 3.3, bibliothèque standard Python, types de données","html":"<p>↑ Documentation Python 3.3, bibliothèque standard Python, types de données</p>"},{"id":"text-90","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 378–396.","html":"<p>↑ Beazley, 2009, p. 378–396.</p>"},{"id":"text-91","type":"text","heading":"","plain_text":"↑ Beazley, 2009, ch. seize.","html":"<p>↑ Beazley, 2009, ch. seize.</p>"},{"id":"text-92","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 313–329.","html":"<p>↑ Beazley, 2009, p. 313–329.</p>"},{"id":"text-93","type":"text","heading":"","plain_text":"↑ Modules cryptographiques dans le répertoire PyPI","html":"<p>↑ Modules cryptographiques dans le répertoire PyPI</p>"},{"id":"text-94","type":"text","heading":"","plain_text":"↑ Documentation Python v2.7, bibliothèque standard Python, anydbm &#8211; Accès générique aux bases de données de style DBM","html":"<p>↑ Documentation Python v2.7, bibliothèque standard Python, anydbm &#8211; Accès générique aux bases de données de style DBM</p>"},{"id":"text-95","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 310—311.","html":"<p>↑ Beazley, 2009, p. 310—311.</p>"},{"id":"text-96","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 436-444.","html":"<p>↑ Beazley, 2009, p. 436-444.</p>"},{"id":"text-97","type":"text","heading":"","plain_text":"↑ Beazley, 2009, p. 444.","html":"<p>↑ Beazley, 2009, p. 444.</p>"},{"id":"text-98","type":"text","heading":"","plain_text":"David M. Beazley. Référence essentielle de Python. &#8211; 4ème édition. &#8211; Addison-Wesley Professional, 2009. &#8211; 717 с. &#8211; ISBN 978-0672329784.\nDoug Hellmann. La bibliothèque standard Python par exemple. &#8211; Addison-Wesley Professional, 2011. &#8211; 1344 с. &#8211; ISBN 978-0321767349.\nFredrik Lundh. Bibliothèque standard Python. &#8211; O &amp; # 39; Reilly Media, 2001. &#8211; 281 с. &#8211; ISBN 978-0596000967.\nTarek Ziadé. Programmation Expert Python. &#8211; Packt Publishing Ltd., 2008. &#8211; 372 с. &#8211; ISBN 978-1-847194-94-7.\nПрохоренок Н. А. Python. Самое необходимое .. &#8211; В-Петербург, 2011. &#8211; 416 с. &#8211; ISBN 978-5-9775-0614-4.","html":"<p>David M. Beazley. Référence essentielle de Python. &#8211; 4ème édition. &#8211; Addison-Wesley Professional, 2009. &#8211; 717 с. &#8211; ISBN 978-0672329784.\nDoug Hellmann. La bibliothèque standard Python par exemple. &#8211; Addison-Wesley Professional, 2011. &#8211; 1344 с. &#8211; ISBN 978-0321767349.\nFredrik Lundh. Bibliothèque standard Python. &#8211; O &amp; # 39; Reilly Media, 2001. &#8211; 281 с. &#8211; ISBN 978-0596000967.\nTarek Ziadé. Programmation Expert Python. &#8211; Packt Publishing Ltd., 2008. &#8211; 372 с. &#8211; ISBN 978-1-847194-94-7.\nПрохоренок Н. А. Python. Самое необходимое .. &#8211; В-Петербург, 2011. &#8211; 416 с. &#8211; ISBN 978-5-9775-0614-4.</p>"},{"id":"text-99","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"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&#39;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."},{"id":"text-2","heading":"Text","content":"Module système[[[[régner | éditer le code]\nCe module contient des fonctions et des constantes pour interagir avec l&#39;interpréteur Python. Ce module, y compris, contient les variables suivantes:"},{"id":"text-3","heading":"Text","content":"argv &#8211; arguments en ligne de commande,\nbyteorder &#8211; l&#39;ordre des octets de la plate-forme, &amp; # 39; peu &amp; # 39; ou &amp; # 39; grand &amp; # 39;,\ndrapeaux &#8211; un objet qui fournit sous la forme d&#39;attributs des informations sur les indicateurs donnés à l&#39;interpréteur. Par exemple, sys.flags.debug parle de mode débogage,\nmaxint &#8211; nombre entier maximum,\nPlate-forme &#8211; l&#39;identifiant de la plateforme, par exemple, &amp; # 39; linux-i386 &amp; # 39 ;,\nstdin, stdout, stderr &#8211; entrée standard, sortie et sortie d&#39;erreur,\nversion &#8211; ligne avec version"},{"id":"text-4","heading":"Text","content":"autre."},{"id":"text-5","heading":"Text","content":"Le module contient également plusieurs fonctions.[1]."},{"id":"text-6","heading":"Text","content":"Module contextuel[[[[régner | éditer le code]\nLe module contient des fonctions de support pour le support opérateur. avec[2][3]."},{"id":"text-7","heading":"Text","content":"Exemple d&#39;utilisation gestionnaire de contexteoù le fichier ouvert est automatiquement fermé:"},{"id":"text-8","heading":"Text","content":"avec ouvrir(Myfile.dat &amp; # 39;, &amp; # 39; wb &amp; # 39;) comme fh:\n    fh.écrire(&amp; # 39; Mes détails &amp; # 39;)"},{"id":"text-9","heading":"Text","content":"Dans l&#39;exemple ci-dessus, un gestionnaire de contexte intégré à Python a été utilisé. L&#39;API du gestionnaire de contexte comprend deux méthodes:"},{"id":"text-10","heading":"Text","content":"Méthode __entrer__ appelé en entrant dans le bloc avec. Retourne l&#39;objet qui reçoit le paramètre spécifié par comme,\nMéthode __sortie__ appelé lorsque le contrôle quitte le bloc avec."},{"id":"text-11","heading":"Text","content":"Module contextlib propose un décorateur pour créer un gestionnaire de contexte basé sur le générateur:"},{"id":"text-12","heading":"Text","content":"de contextlib importation gestionnaire de contexte\n@contextmanager\ndef mon_context():\n    essayer:\n        rendement ma valeur  # valeur pour as\n    sauf Myerror, e:\n        # gestion des exceptions\n    enfin:\n        # exécuté avec aucun résultat"},{"id":"text-13","heading":"Text","content":"Module abc[[[[régner | éditer le code]\nLe 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]."},{"id":"text-14","heading":"Text","content":"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&#39;heure, le tableau, le tas, la file d&#39;attente, les références faibles et les types de base abstraits du module collections."},{"id":"text-15","heading":"Text","content":"Module datetime[[[[régner | éditer le code]\nLe 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&#39;heures (timedelta) et le fuseau horaire (tzinfo)[7]."},{"id":"text-16","heading":"Text","content":"L&#39;exemple suivant imprime une instance. date / heurequi fixe la date et l&#39;heure au moment de l&#39;appel de la méthode à présent ():"},{"id":"text-17","heading":"Text","content":"&gt;&gt;&gt; importation date / heure\n&gt;&gt;&gt; date / heure.date / heure.à présent()\ndate / heure.date / heure(2013, cinq, Onze, dix-neuf, 47, 25, 375511)"},{"id":"text-18","heading":"Text","content":"Module Collections[[[[régner | éditer le code]\nCe module comprend un ensemble de types de données spéciaux &#8211; des conteneurs qui complètent les types standard intégrés. dict, liste, ensemble et tuple. Par exemple pour Python 2.7: OrdreDict &#8211; dictionnaire ordonné (dans l&#39;ordre d&#39;ajout d&#39;éléments), defaultdict &#8211; un dictionnaire qui appelle une fonction donnée pour un élément qui n&#39;y est pas, Compteur &#8211; un dictionnaire pratique à utiliser pour compter les mots, Deque &#8211; liste doublement liée nommétuple &#8211; un tuple avec la possibilité d&#39;accéder aux éléments par noms d&#39;attributs. Il existe également des classes de base abstraites. Conteneur, séquence, ensemble, cartographie autre[8][9]."},{"id":"text-19","heading":"Text","content":"Un exemple montrant comment travailler avec un deck:"},{"id":"text-20","heading":"Text","content":"&gt;&gt;&gt; de collections importation deque\n&gt;&gt;&gt; ré = deque(&amp; # 39; 123 &amp; # 39;)\n&gt;&gt;&gt; ré[[[[un]\n&amp; # 39; 2 &amp; # 39;\n&gt;&gt;&gt; ré.pop()\n&amp; # 39; 3 &amp; # 39;\n&gt;&gt;&gt; ré.appendice arrière(&amp; # 39; 0 &amp; # 39;)\n&gt;&gt;&gt; liste(ré)\n[[[[&amp; # 39; 0 &amp; # 39;, &amp; # 39; un &amp; # 39;, &amp; # 39; 2 &amp; # 39;]"},{"id":"text-21","heading":"Text","content":"Exemple de tuple nommé pour un point dans un espace tridimensionnel:"},{"id":"text-22","heading":"Text","content":"&gt;&gt;&gt; de collections importation nommétuple\n&gt;&gt;&gt; Point = nommétuple(&amp; # 39; Point &amp; # 39;, [[[[&amp; # 39; x &amp; # 39;, &amp; # 39; y &amp; # 39;, &amp; # 39; z &amp; # 39;])  # Définir le point de classe\n&gt;&gt;&gt; une = Point(1,0, 2.0, 3.0)  # Instance de point\n&gt;&gt;&gt; une.X + une.y + une.z  # Accès par attributs\n6.0\n&gt;&gt;&gt; une  # Cela ressemble à l&#39;impression\nPoint(X=1,0, y=2.0, z=3.0)\n&gt;&gt;&gt; une + (4.0, 5.0)  # Fonctionne comme un tuple\n(1,0, 2.0, 3.0, 4.0, 5.0)"},{"id":"text-23","heading":"Text","content":"En Python 3.3, une classe est apparue Carte de la chaînequi vous permet de créer des dictionnaires imbriqués[10]."},{"id":"text-24","heading":"Text","content":"Exemple dans lequel la recherche d&#39;une valeur par clé est effectuée dans un ordre donné dans plusieurs dictionnaires:"},{"id":"text-25","heading":"Text","content":"&gt;&gt;&gt; local_cfg = &amp; # 39; a &amp; # 39;: quatre\n&gt;&gt;&gt; user_cfg = &amp; # 39; a &amp; # 39;: cinq\n&gt;&gt;&gt; system_cfg = &amp; # 39; a &amp; # 39;: cinq, &amp; # 39; b &amp; # 39;: Dix\n&gt;&gt;&gt; cm = Carte de la chaîne(local_cfg, user_cfg, system_cfg)\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)\n&gt;&gt;&gt; local_cfg[[[[&amp; # 39; b &amp; # 39;] = Dix\n&gt;&gt;&gt; cm[[[[&amp; # 39; a &amp; # 39;], cm[[[[&amp; # 39; b &amp; # 39;]\n(quatre, Dix)"},{"id":"text-26","heading":"Text","content":"Module Os[[[[régner | éditer le code]\nLe 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&#39;environnement)[11]."},{"id":"text-27","heading":"Text","content":"Module Os.path[[[[régner | éditer le code]\nLe module est utilisé pour manipuler les chemins de fichiers sur une plate-forme indépendante du type. Un exemple illustre l&#39;utilisation de certaines fonctions du module:"},{"id":"text-28","heading":"Text","content":"&gt;&gt;&gt; importation os.path\n&gt;&gt;&gt; os.chemin.joindre(&quot;/ tmp / 1&quot;, &quot;temp.file&quot;)  # concaténation de chemins\n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.nom de répertoire(&quot;/tmp/1/temp.file&quot;)  # nom du répertoire donné un chemin complet\n&amp; # 39; / tmp / 1 &amp; # 39;\n&gt;&gt;&gt; os.chemin.nom de base(&quot;/tmp/1/temp.file&quot;)  # nom de fichier pour le chemin complet donné\n&amp; # 39; temp.file &amp; # 39;\n&gt;&gt;&gt; os.chemin.normpath(&quot;/tmp//2/../1/temp.file&quot;)  # normalisation de chemin \n&amp; # 39; /tmp/1/temp.file&amp;#39;\n&gt;&gt;&gt; os.chemin.existe(&quot;/tmp/1/temp.file&quot;)  # y a-t-il un moyen?\nFaux"},{"id":"text-29","heading":"Text","content":"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]."},{"id":"text-30","heading":"Text","content":"Constantes et fonctions utiles du module chaîne[[[[régner | éditer le code]\nLe module contient diverses constantes pouvant être utilisées dans le traitement de texte, par exemple:\nascii_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."},{"id":"text-31","heading":"Text","content":"&gt;&gt;&gt; de chaîne importation ascii_letters, ascii_lowercase, ascii_uppercase, chiffres\n&gt;&gt;&gt; ascii_letters\n&amp; # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; ascii_lowercase\nAbcdefghijklmnopqrstuvwxyz &amp; # 39;\n&gt;&gt;&gt; ascii_uppercase\n&amp; # 39; ABCDEFGHIJKLMNOPQRSTUVWXYZ &amp; # 39;\n&gt;&gt;&gt; chiffres\n0123456789 &amp; # 39;"},{"id":"text-32","heading":"Text","content":"Créer un mot de passe:"},{"id":"text-33","heading":"Text","content":"&gt;&gt;&gt; caractères = ascii_letters + chiffres\n&gt;&gt;&gt; de au hasard importation choix\n&gt;&gt;&gt; n = huit                            # longueur du mot de passe\n&gt;&gt;&gt; &amp; # 39; &amp; # 39;.joindre(choix(caractères) pour _ dans intervalle(n))\n&amp; # 39; ia1KGm2t &amp; # 39;"},{"id":"text-34","heading":"Text","content":"Pour simplifier la substitution de chaîne par mot clé, des instances de classe peuvent être utilisées. Modèle. L&#39;exemple illustre les méthodes remplacer et safe_substitute:"},{"id":"text-35","heading":"Text","content":"&gt;&gt;&gt; de chaîne importation Modèle\n&gt;&gt;&gt; tpl = Modèle(&quot;&quot; &quot;$ name a $ montant $$. oh&quot; &quot;&quot;)\n&gt;&gt;&gt; tpl.remplacer(&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;\n&gt;&gt;&gt; tpl.safe_substitute(&quot;montant&quot;: 100)\n$ Name a 100 €. Oh &amp; # 39;\n&gt;&gt;&gt; # Pour la comparaison de syntaxe, la méthode de formatage d&#39;une chaîne: \n&gt;&gt;&gt; &quot;&quot; &quot;name a montant $. oh&quot; &quot;&quot;.format(**&quot;montant&quot;: 100, &quot;prénom&quot;: &quot;John&quot;)\n&amp; # 39; John a 100 $. Oh &amp; # 39;"},{"id":"text-36","heading":"Text","content":"Support des expressions régulières: re module[[[[régner | éditer le code]\nLes 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&#39;expression régulière compilée et le résultat de la comparaison. Exemple:"},{"id":"text-37","heading":"Text","content":"&gt;&gt;&gt; importation ré\n&gt;&gt;&gt; compiled_re = ré.compiler(r&quot;[a-b][0-9]* &quot;)\n&gt;&gt;&gt; [[[[m.groupe(0) pour m dans compiled_re.chercheur(&quot;A1 c123 a12, b abc (b987).&quot;)]\n[[[[&amp; # 39; a12 &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; a &amp; # 39;, &amp; # 39; b &amp; # 39;, &amp; # 39; b987 &amp; # 39;]"},{"id":"text-38","heading":"Text","content":"Travailler avec des structures d&#39;octets dans le module struct[[[[régner | éditer le code]\nLe module struct est utilisé pour convertir les données à partir de chaînes d&#39;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.\nLes fonctions pack et déballer vous permettent de «compresser» et de «décompresser» des données en fonction d&#39;une chaîne de formatage composée de leurs codes de formatage, par exemple:"},{"id":"text-39","heading":"Text","content":"&gt;&gt;&gt; de struct importation pack, déballer\n&gt;&gt;&gt; pack(&amp; # 39; hh &amp; # 39;, un, 2)  # h - code entier court avec signe\n&amp; # 39; x01  x00  x02  x00&amp; # 39;\n&gt;&gt;&gt; déballer(&amp; # 39; bbbb &amp; # 39;, &amp; # 39; ABCD &amp; # 39;)  # b correspond à un caractère signé\n(65, 66, 67, 68)"},{"id":"text-40","heading":"Text","content":"L&#39;ordre des octets des données multi-octets peut être spécifié dans la chaîne de format, par exemple:"},{"id":"text-41","heading":"Text","content":"&gt;&gt;&gt; pack(&amp; # 39 ;! l &amp; # 39;, 1025)  # réseau (du plus vieux au plus jeune, big-endian)\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39;&gt; l &amp; # 39;, 1025)  # de senior à junior, big-endian\n&amp; # 39; x00  x00  x04  x01&amp; # 39;\n&gt;&gt;&gt; pack(&amp; # 39; &lt;l &amp; # 39;, 1025)  # de junior à senior, little-endian\n&amp; # 39; x01  x04  x00  x00&amp; # 39;"},{"id":"text-42","heading":"Text","content":"Le module définit également la classe. Structdont les méthodes correspondent aux fonctions du module."},{"id":"text-43","heading":"Text","content":"CSV[[[[régner | éditer le code]\nUn module est conçu pour lire et écrire un fichier CSV. CSV.\nCe 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).\nL&#39;exemple le plus simple est:"},{"id":"text-44","heading":"Text","content":"importation CSV\nlecteur = CSV.lecteur(ouvrir(&quot;some.csv&quot;, &quot;rb&quot;))\npour rangée dans lecteur:\n    impression rangée"},{"id":"text-45","heading":"Text","content":"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 &#8211; |symbole de citation &#8211; ` (au lieu &quot; défaut)."},{"id":"text-46","heading":"Text","content":"un importation CSV\n2 \n3 avec ouvrir(&quot;some.csv&quot;, &quot;wb&quot;) comme csv_fh:\nquatre     écrivain = CSV.écrivain(csv_fh, délimiteur=&amp; # 39;: &amp; # 39;, citant=CSV.QUOTE_MINIMAL, quotechar=&amp; # 39; &amp; # 39; &amp; # 39;, linererminator=&amp; # 39; | &amp; # 39;)\ncinq     écrivain.écrivains([[[[\n6                       [[[[1997, &quot;Gué&quot;,  &quot;E350&quot;, &quot;ac, abs, lune&quot;, &quot;3000.00&quot;],\n7                       [[[[1999, &quot;Chevy&quot;, &quot;Venture` Extended Edition`&quot;, &quot;&quot;, &quot;4900.00&quot;],\nhuit                       [[[[1996, &quot;Jeep&quot;,  &quot;Grand Cherokee&quot;, &quot;air, toit ouvrant, chargé DOIT VENDRE!&quot;, &quot;4799.00&quot;] \n9                     ])"},{"id":"text-47","heading":"Text","content":"Travailler avec des archives de fichiers[[[[régner | éditer le code]\nLa bibliothèque standard prend en charge plusieurs formats d&#39;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]."},{"id":"text-48","heading":"Text","content":"Exemples pour Python 2.7 et 3.2[[[[régner | éditer le code]\nDans l&#39;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&#39;utilisation du gestionnaire de contexte."},{"id":"text-49","heading":"Text","content":"de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; w &amp; # 39;) comme ziparc:\n     ziparc.écrivain(&amp; # 39; fichier.txt &amp; # 39;, &amp; # 39; texte dans le fichier &amp; # 39;)"},{"id":"text-50","heading":"Text","content":"La lecture des archives est similaire. L&#39;exemple suivant imprime les noms de fichier contenus dans l&#39;archive:"},{"id":"text-51","heading":"Text","content":"de fichier zip importation Fichier zip\navec Fichier zip(Archive.zip &amp; # 39;, &amp; # 39; r &amp; # 39;) comme ziparc:\n     pour fileinfo dans ziparc.liste de fichiers:\n         impression(fileinfo.nom de fichier)"},{"id":"text-52","heading":"Text","content":"Fichiers de configuration[[[[régner | éditer le code]\nLe 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:"},{"id":"text-53","heading":"Text","content":"[My Section]"},{"id":"text-54","heading":"Text","content":"# quelques commentaires\nfoodir =% (dir) s / quel que soit\ndir = frob\nversion: 1.0"},{"id":"text-55","heading":"Text","content":"En tant que clé de séparation, une valeur peut être utilisée &quot;=&quot; ou &quot;:&quot;. 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 &quot;#&quot;, est considéré comme un commentaire et est ignoré par les analyseurs."},{"id":"text-56","heading":"Text","content":"Les informations contenues dans cette section sont obsolètes.\nVous pouvez aider le projet en le mettant à jour puis en supprimant le modèle."},{"id":"text-57","heading":"Text","content":"Pour diverses raisons (y compris politiques &#8211; dans de nombreux pays, il est interdit de développer et de distribuer des logiciels de chiffrement sans l&#39;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."},{"id":"text-58","heading":"Text","content":"Dans la version 2.5, la structure de la crypto-bibliothèque était unifiée &#8211; toutes les fonctions de hachage sont assemblées dans un module. hashlib et supprimé les modules de chiffrement non cryptographiques inutiles.\nPremiers modules md5, Hmac, sha déclaré obsolète et sera supprimé dans une version ultérieure."},{"id":"text-59","heading":"Text","content":"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 &#8211; 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é &#8211; elles ont été créées avant l&#39;écriture de CryptoAPI ou parce qu&#39;elles sont générées automatiquement au-dessus des bibliothèques C correspondantes)."},{"id":"text-60","heading":"Text","content":"Utiliser des bibliothèques compatibles avec CryptoAPI est très simple:"},{"id":"text-61","heading":"Text","content":"&gt;&gt;&gt; importation hashlib\n &gt;&gt;&gt; m = hashlib.Nouveau(&amp; # 39; md5 &amp; # 39;)      # créer un nouvel objet de hachage avec la fonction MD5\n &gt;&gt;&gt; m = hashlib.md5()           soit si\n &gt;&gt;&gt; m.mettre à jour(&quot;données de test&quot;)       # ajouter des données\n &gt;&gt;&gt; m.digérer()\n &amp; # 39; xebs: x00  xc0  xc9  xd36 xe6V x91  xa3z xb5B x93&amp; # 39;\n &gt;&gt;&gt; m.hexdigest()\n &amp; # 39; e733a00c0c9d336e65691a37ab54293 &amp; # 39;"},{"id":"text-62","heading":"Text","content":"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&#39;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."},{"id":"text-63","heading":"Text","content":"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]."},{"id":"text-64","heading":"Text","content":"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."},{"id":"text-65","heading":"Text","content":"Recevoir un fichier via HTTP (HTTPS)[[[[régner | éditer le code]\nEmail[[[[régner | éditer le code]\nModule smtplib[[[[régner | éditer le code]\nLe module est conçu pour envoyer des courriers électroniques via le protocole SMTP."},{"id":"text-66","heading":"Text","content":"importation smtplib"},{"id":"text-67","heading":"Text","content":"def send_email(texte):\n    serveur = smtplib.SMTP(&quot;smtp.server&quot;, 587)  # connecter au serveur\n    serveur.ehlo()\n    serveur.débuts()\n    serveur.s&#39;identifier(&quot;s&#39;identifier&quot;, &quot;mot de passe&quot;)  Se connecter au serveur\n    message = &quot; r  n&quot;.joindre([[[[   # formulaire Email avec champs\n        &quot;De: de&quot;, \n        &quot;To: to&quot;, \n        &quot;Sujet: Sujet&quot;, \n        &quot;&quot;, \n        texte,\n        ])\n    serveur.envoyer un mail(&quot;login @ server&quot;, &quot;Adresse e-mail du destinataire&quot;, message)  # envoyer\n    serveur.quitter()  se déconnecter du serveur"},{"id":"text-68","heading":"Text","content":"send_email(&amp; # 39; Bonjour le monde! &amp; # 39;)"},{"id":"text-69","heading":"Text","content":"Bases de données simples[[[[régner | éditer le code]\nPython 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]."},{"id":"text-70","heading":"Text","content":"Travailler avec un objet de base de données est similaire à travailler avec un dictionnaire Python (par exemple dumbdbm)[16]:"},{"id":"text-71","heading":"Text","content":"&gt;&gt;&gt; importation dumbdbm\n&gt;&gt;&gt; ré = dumbdbm.ouvrir(&amp; # 39; my.db &amp; # 39;, &amp; # 39; w &amp; # 39;)  # fichier de base de données ouvert\n&gt;&gt;&gt; ré[[[[&amp; # 39; clé &amp; # 39;] = &amp; # 39; valeur &amp; # 39;              # attribuer une valeur par clé\n&gt;&gt;&gt; v = ré[[[[&amp; # 39; clé &amp; # 39;]                    # obtenir de la valeur par clé\n&gt;&gt;&gt; ré.synchroniser()                        changements d&#39;enregistrement\n&gt;&gt;&gt; ré.Fermer()                       # fermer la base de données"},{"id":"text-72","heading":"Text","content":"Pour le stockage à long terme des objets Python, vous pouvez utiliser le module ranger (Rus &quot;mettre sur l&#39;étagère&quot;)."},{"id":"text-73","heading":"Text","content":"Sqlite[[[[régner | éditer le code]\nSQLite 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."},{"id":"text-74","heading":"Text","content":"Pour travailler avec la bibliothèque, vous devez créer un objet. Lien qui sert de base de données:"},{"id":"text-75","heading":"Text","content":"un importation sqlite3\n    2 Connecticut = sqlite3.relier(&amp; # 39; exemple.db &amp; # 39;)\n    3 c = Connecticut.le curseur()\n    quatre \n    cinq # Créer une table\n    6 c.exécuter(&amp; # 39; &amp; # 39; Actions CREATE TABLE\n    7                                                     (date, texte trans, texte du symbole, quantité réelle, prix réel) &amp; # 39; &amp; # 39; &amp; # 39; &amp; # 39;)\n    huit \n    9 # Insérer une ligne\nDix c.exécuter(&quot;INSERT INTO stocks&quot; (2006-01-05, &quot;ACHETER&quot;, &quot;RHAT&quot;, 100,35.14) &quot;)\nOnze \n12 # Enregistrer (et écrire) les modifications\n13 Connecticut.commettre()\n14 \n15 # Après la fin des travaux, nous pouvons fermer la connexion avec DB\nseize Connecticut.Fermer()"},{"id":"text-76","heading":"Text","content":"Support au développement logiciel[[[[régner | éditer le code]\nModule filetage fournit une classe Filcorrespondant au fil, ainsi que des classes pour les objets de synchronisation, telles que: locks Fermer à clé et Rlock, Minuteursémaphores Sémaphore et Sémaphore Boundedvariable de condition Étatun événement un événement. En outre, pour la mise en file d&#39;attente &#8211; FIFO, LIFO, la file d&#39;attente prioritaire &#8211; le module est utilisé queue (Queue en python 2)."},{"id":"text-77","heading":"Text","content":"Python n&#39;a pas les moyens de mettre fin ou de mettre en pause les threads, ni de libérer tous les verrous[17]."},{"id":"text-78","heading":"Text","content":"La présence dans l’implémentation principale du verrou d’interprète global Python (eng. Verrou d&#39;interprète global, GIL) limite sérieusement l&#39;utilité de l&#39;informatique multithread dans le comptage des problèmes[18]."},{"id":"text-79","heading":"Text","content":"Le package Python standard comprend la bibliothèque graphique Tkinter."},{"id":"text-80","heading":"Text","content":"↑ Beazley, 2009, p. 229-235."},{"id":"text-81","heading":"Text","content":"↑ Ziadé, 2008, p. 56-60."},{"id":"text-82","heading":"Text","content":"↑ Doug Hellman. contextlib &#8211; utilitaires de gestion de contexte (eng.). La date d&#39;appel est le 30 août 2012. Archivé le 18 octobre 2012."},{"id":"text-83","heading":"Text","content":"↑ Beazley, 2009, p. 257-259."},{"id":"text-84","heading":"Text","content":"↑ Documentation Python v2.7, bibliothèque standard Python, services d&#39;exécution Python, classes de base abstraites"},{"id":"text-85","heading":"Text","content":"↑ Types de données &#8211; Documentation Python 3"},{"id":"text-86","heading":"Text","content":"↑ Prokhorenok, 2011."},{"id":"text-87","heading":"Text","content":"↑ Ziadé, 2008, p. 303-306."},{"id":"text-88","heading":"Text","content":"↑ Beazley, 2009, p. 262-265."},{"id":"text-89","heading":"Text","content":"↑ Documentation Python 3.3, bibliothèque standard Python, types de données"},{"id":"text-90","heading":"Text","content":"↑ Beazley, 2009, p. 378–396."},{"id":"text-91","heading":"Text","content":"↑ Beazley, 2009, ch. seize."},{"id":"text-92","heading":"Text","content":"↑ Beazley, 2009, p. 313–329."},{"id":"text-93","heading":"Text","content":"↑ Modules cryptographiques dans le répertoire PyPI"},{"id":"text-94","heading":"Text","content":"↑ Documentation Python v2.7, bibliothèque standard Python, anydbm &#8211; Accès générique aux bases de données de style DBM"},{"id":"text-95","heading":"Text","content":"↑ Beazley, 2009, p. 310—311."},{"id":"text-96","heading":"Text","content":"↑ Beazley, 2009, p. 436-444."},{"id":"text-97","heading":"Text","content":"↑ Beazley, 2009, p. 444."},{"id":"text-98","heading":"Text","content":"David M. Beazley. Référence essentielle de Python. &#8211; 4ème édition. &#8211; Addison-Wesley Professional, 2009. &#8211; 717 с. &#8211; ISBN 978-0672329784.\nDoug Hellmann. La bibliothèque standard Python par exemple. &#8211; Addison-Wesley Professional, 2011. &#8211; 1344 с. &#8211; ISBN 978-0321767349.\nFredrik Lundh. Bibliothèque standard Python. &#8211; O &amp; # 39; Reilly Media, 2001. &#8211; 281 с. &#8211; ISBN 978-0596000967.\nTarek Ziadé. Programmation Expert Python. &#8211; Packt Publishing Ltd., 2008. &#8211; 372 с. &#8211; ISBN 978-1-847194-94-7.\nПрохоренок Н. А. Python. Самое необходимое .. &#8211; В-Петербург, 2011. &#8211; 416 с. &#8211; ISBN 978-5-9775-0614-4."},{"id":"text-99","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/05/40px-Ambox_outdated_serious.svg.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/04/bibliotheque-standard-python-wikipedia-bien-choisir-son-serveur-d-impression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}