Latest web development tutorials

Python3 bibliothèque standard Vue d'ensemble

Operating System Interface

module os fournit un certain nombre de fonctions relatives au système d'exploitation lié.

>>> import os
>>> os.getcwd()      # 返回当前的工作目录
'C:\\Python34'
>>> os.chdir('/server/accesslogs')   # 修改当前的工作目录
>>> os.system('mkdir today')   # 执行系统命令 mkdir 
0

Nous recommandons l'utilisation du style "import os" au lieu de "de os import *". Cela garantit que le système d'exploitation varient en os.open différents () ne l'emporte pas sur la fonction intégrée open ().

Lorsque vous utilisez os un tel grand module intégré dir () et aide () fonctions sont utiles:

>>> import os
>>> dir(os)
<returns a list of all module functions>
>>> help(os)
<returns an extensive manual page created from the module's docstrings>

Pour les tâches quotidiennes de fichiers et de gestion de répertoire ,: mod: module shutil fournit une interface de haut niveau qui est plus facile à utiliser:

>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
>>> shutil.move('/build/executables', 'installdir')

fichier wildcard

module glob fournit une fonction pour faire des listes de fichiers à partir des recherches répertoire génériques:

>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']

paramètres de ligne de commande

scripts utilitaires communs invoquent souvent les paramètres de ligne de commande. Ces arguments de ligne de commande comme une liste stockée dans le module sys variables argv. Vous pouvez obtenir la sortie suivante, après la mise en œuvre de "python demo.py un deux trois» à la ligne de commande:

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

Erreur Redirection de sortie et fin de programme

sys, et aussi stdin, stdout et stderr propriétés, même lorsque stdout a été redirigé, ce dernier peut également être utilisé pour afficher les avertissements et les messages d'erreur.

>>> sys.stderr.write('Warning, log file not found starting a new one\n')
Warning, log file not found starting a new one

La plupart des scripts sont dirigés de mettre fin à l'utilisation de "sys.exit ()".


string match régulier

re pour module avancé de traitement de chaîne fournit des outils d'expression régulière. Pour l'appariement et la manipulation complexe, les expressions régulières offrent des solutions succincts, optimisées:

>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'

Si vous avez seulement besoin d'une fonction simple, vous devez d'abord considérer la méthode de chaîne, car ils sont plus faciles à lire et à déboguer:

>>> 'tea for too'.replace('too', 'two')
'tea for two'

mathématiques

flottante module de point de mathématiques donne accès à la bibliothèque C sous-jacente:

>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0

aléatoire fournit des outils pour générer des nombres aléatoires.

>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(range(100), 10)   # sampling without replacement
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random()    # random float
0.17970987693706186
>>> random.randrange(6)    # random integer chosen from range(6)
4

Accès Internet

Il existe plusieurs modules pour accéder à l'Internet et le traitement des protocoles Internet. Deux des plus simple est de traiter les données reçues de urls et smtplib urllib.request pour l'envoi d'e-mail:

>>> from urllib.request import urlopen
>>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
...     line = line.decode('utf-8')  # Decoding the binary data to text.
...     if 'EST' in line or 'EDT' in line:  # look for Eastern Time
...         print(line)

<BR>Nov. 25, 09:43:32 PM EST

>>> import smtplib
>>> server = smtplib.SMTP('localhost')
>>> server.sendmail('[email protected]', '[email protected]',
... """To: [email protected]
... From: [email protected]
...
... Beware the Ides of March.
... """)
>>> server.quit()

Notez que le second exemple nécessite un serveur de messagerie local ont en cours d'exécution.


Date et heure

module datetime pour la date et l'heure dans les deux façons simples et complexes.

date de soutien et de l'arithmétique de temps, tout en se concentrant sur la réalisation d'un traitement plus efficace et le formatage de sortie.

Le module prend également en charge le processeur fuseau horaire:

>>> # dates are easily constructed and formatted
>>> from datetime import date
>>> now = date.today()
>>> now
datetime.date(2003, 12, 2)
>>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # dates support calendar arithmetic
>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368

Compression de données

Les modules suivants prennent en charge directement archivage et de compression des formats de données commune: zlib, gzip, bz2, zipfile et tarfile.

>>> import zlib
>>> s = b'witch which has which witches wrist watch'
>>> len(s)
41
>>> t = zlib.compress(s)
>>> len(t)
37
>>> zlib.decompress(t)
b'witch which has which witches wrist watch'
>>> zlib.crc32(s)
226805979

Les mesures de performance

Performance de méthodes différentes pour certains utilisateurs de comprendre le même problème chez les très intéressés. Python fournit un outil de mesure qui fournit des réponses directes à ces questions.

Par exemple, utiliser l'emballage et le déballage tuple élément d'échange semble mieux que d'utiliser des méthodes traditionnelles pour plus attrayant, approche moderne timeit prouvé plus rapide.

>>> from timeit import Timer
>>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
0.57535828626024577
>>> Timer('a,b = b,a', 'a=1; b=2').timeit()
0.54962537085770791

En ce qui concerne timeit à grains fins ,: mod: profil et module pstats fournit une mesure de temps pour les grands blocs d'outil de code.


Module d'essai

Une façon est de développer le développement de logiciels de haute qualité et le test de chaque code de fonction, et dans le processus de développement souvent testé

Module doctest fournit un outil pour la numérisation d'un module et le programme intégré dans le test document de chaîne est réalisée en conformité avec.

construction d'essai est aussi simple que sa sortie coupé et collé dans la chaîne de document.

A titre d'exemple fourni par l'utilisateur, il renforce le document, permettant module doctest pour vous assurer que le code reste fidèle à la documentation:

def average(values):
    """Computes the arithmetic mean of a list of numbers.

    >>> print(average([20, 30, 70]))
    40.0
    """
    return sum(values) / len(values)

import doctest
doctest.testmod()   # 自动验证嵌入测试

Contrairement à doctest Module unittest Module si facile à utiliser, mais il peut fournir un ensemble plus complet de tests dans un fichier séparé:

import unittest

class TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        self.assertRaises(ZeroDivisionError, average, [])
        self.assertRaises(TypeError, average, 20, 30, 70)

unittest.main() # Calling from the command line invokes all tests