Latest web development tutorials

Python3 standard Biblioteca Panoramica

Operating System Interface

modulo os fornisce una serie di funzioni relative al sistema operativo collegato.

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

Si consiglia l'uso dello stile "import os" invece di "from os import *". Questo assicura che con il sistema operativo diversi a seconda dei os.open () non esclude la funzione built-in open ().

Quando si utilizza os una grande modulo di tale built-in dir () e l'aiuto () funzioni sono utili:

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

Per le attività di file e di gestione directory quotidiane ,: mod: modulo shutil fornisce un'interfaccia di alto livello che è più facile da usare:

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

file di jolly

modulo glob fornisce una funzione per fare elenchi di file dalle ricerche di directory jolly:

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

i parametri della riga di comando

script di utilità comuni spesso invocano i parametri della riga di comando. Questi argomenti della riga di comando come un elenco memorizzato nel modulo sys variabile argv. È possibile ottenere il seguente esempio di uscita, dopo l'attuazione del "pitone demo.py uno due tre" nella riga di comando:

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

Errore reindirizzamento output e terminare il programma

SYS, e anche stdin, stdout e stderr proprietà, anche quando stdout viene rediretto, quest'ultimo può essere utilizzato anche per visualizzare gli avvisi e messaggi di errore.

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

La maggior parte degli script sono diretti di interrompere l'uso di "sys.exit ()".


partita stringa di regolare

re per il modulo processare le stringhe fornisce strumenti di espressioni regolari. Per corrispondenza complesso e la manipolazione, le espressioni regolari offrono una succinta soluzioni, ottimizzate:

>>> 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'

Se è necessario solo una semplice funzione, si deve prima considerare il metodo di stringa, dal momento che sono più facili da leggere e correggere:

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

matematica

floating point modulo matematico consente di accedere alla libreria C sottostante:

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

casuale fornisce strumenti per la generazione di numeri casuali.

>>> 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

accesso ad Internet

Ci sono diversi moduli per l'accesso a Internet e l'elaborazione di protocolli Internet. Due dei più semplici è quello di elaborare i dati ricevuti da URL e smtplib urllib.request per l'invio di 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()

Si noti che il secondo esempio richiede un server di posta locale in esecuzione.


Data e ora

Modulo datetime per la data e gli orari in entrambi i modi semplici e complessi.

Data e ora Supporto aritmetica, mentre ci si concentra sulla realizzazione di elaborazione più efficiente e la formattazione di uscita.

Il modulo supporta anche il processore di fuso orario:

>>> # 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

Compressione dei dati

I seguenti moduli supportano direttamente formati di archiviazione e compressione di dati comuni: zlib, gzip, bz2, file zip, e 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

metriche di performance

Prestazioni di metodi diversi per alcuni utenti per capire lo stesso problema tra molto interessato. Python fornisce uno strumento di misura che fornisce risposte dirette a queste domande.

Ad esempio, utilizzare l'imballaggio tuple e disimballaggio elemento di scambio sembra meglio che usare i metodi tradizionali per più attraente, timeit approccio moderno dimostrò più veloce.

>>> 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

Per quanto riguarda timeit grana fine ,: mod: profilo e modulo pstats fornisce una misura del tempo per i più grandi blocchi di codice strumento.


Modulo test

Un modo è quello di sviluppare lo sviluppo di software di alta qualità e la prova di ogni codice funzione, e nel processo di sviluppo spesso testato

Modulo doctest fornisce uno strumento per la scansione di un modulo e il programma incorporato nel test di documento stringa viene eseguita in conformità.

costruzione di test è semplice come la sua uscita tagliato e incollato nel documento stringa.

A titolo di esempio fornito dall'utente, rinforza il documento, permettendo modulo doctest per assicurarsi che il codice rimane fedele alla documentazione:

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()   # 自动验证嵌入测试

A differenza di modulo doctest unittest modulo così facile da usare, ma può fornire un insieme più completo di test in un file separato:

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