Latest web development tutorials

Python3 Standard Library Übersicht

Operating System Interface

os Modul bietet eine Reihe von Funktionen im Zusammenhang mit dem Betriebssystem verbunden sind.

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

Wir empfehlen die Verwendung von "import os" Stil statt "von os import *". Dies stellt sicher, dass mit dem Betriebssystem variieren in verschiedenen os.open () überschreibt nicht die eingebaute Funktion open ().

Wenn Sie os ein so großes Modul eingebaute in dir () und Hilfe () Funktionen sind nützlich:

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

Für die tägliche Datei- und Verzeichnismanagement-Aufgaben ,: mod: shutil Modul bietet eine High-Level-Schnittstelle, die einfacher zu bedienen ist:

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

Wildcard-Datei

glob-Modul bietet eine Funktion für Listen aus dem Verzeichnis Wildcard Durchsuchungen-Datei erstellen:

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

Kommandozeilenparameter

Gemeinsame Utility-Skripte aufrufen oft die Befehlszeilenparameter. Diese Befehlszeilenargumente als Liste in der argv Variable sys-Modul gespeichert. Sie können folgende Ausgabebeispiel erhalten, nachdem die Umsetzung der in der Befehlszeile "Python eins zwei drei demo.py":

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

Fehlerausgang Umleitung und Programmabbruch

sys, und auch stdin, stdout und stderr Eigenschaften, auch wenn stdout umgeleitet wurde, kann diese auch angezeigt werden Warnungen und Fehlermeldungen verwendet werden.

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

Die meisten Skripte sind darauf gerichtet, die Verwendung von "sys.exit ()" zu beenden.


Regelmäßige String Match

Re für erweiterte String-Verarbeitungsmodul bietet regulären Ausdruck Tools. Für komplexe Matching und Manipulation bieten reguläre Ausdrücke in gedrängter Form, optimierte Lösungen:

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

Wenn Sie nur eine einfache Funktion benötigen, sollten Sie zunächst die String-Methode betrachten, da sie leichter zu lesen und zu debuggen:

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

Mathematik

Gleitkommamathematik Modul ermöglicht den Zugriff auf die zugrunde liegenden C-Bibliothek:

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

Zufalls bietet Tools für die Erzeugung von Zufallszahlen.

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

Internetzugang

Es gibt mehrere Module für das Internet erreichbar und Verarbeitung von Internet-Protokollen. Zwei der einfachsten ist es, die empfangenen Daten von Urls und smtplib urllib.request für das Versenden von E-Mail zu verarbeiten:

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

Beachten Sie, dass das zweite Beispiel ein lokaler Mail-Server laufen haben erfordert.


Datum und Uhrzeit

Datetime-Modul für das Datum und die Uhrzeit in einfache und komplexe Weise.

Support Datum und Zeit Arithmetik, während auf der Realisierung einer effizienteren Verarbeitung konzentriert und die Formatierung der Ausgabe.

Das Modul unterstützt auch Zeitzonen Prozessor:

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

Datenkomprimierung

Die folgenden Module unterstützen direkt gemeinsame Datenarchivierung und Komprimierungsformate: zlib, gzip, bz2, zipfile und 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

Performance-Metriken

Leistung verschiedener Methoden für einige Benutzer das gleiche Problem unter sehr daran interessiert, zu verstehen. Python bietet ein Messwerkzeug, das auf diese Fragen direkte Antworten liefert.

Verwenden Sie zum Beispiel die Tupel und Auspacken Austauschelement sieht besser aus als mit traditionellen Methoden, um attraktiver zu machen, timeit modernen Ansatz schneller erwiesen.

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

Hinsichtlich timeit feinkörnig ,: mod: Profil und pstats Modul ein gewisses Maß an Zeit für größere Blöcke von Code-Tool bietet.


Testmodul

Eine Möglichkeit ist, qualitativ hochwertige Software-Entwicklung und Erprobung jedes Funktionscode zu entwickeln und in den Entwicklungsprozess oft getestet

doctest Modul stellt ein Werkzeug zum Abtasten eines Moduls und das Programm in dem Testdokument Zeichenfolge eingebettet ist in Übereinstimmung mit geführt.

Testkonstruktion ist so einfach wie die Ausgabe in das Dokument String geschnitten und geklebt.

Beispielsweise durch den Benutzer zur Verfügung gestellt, verstärkt sie das Dokument, so dass doctest Modul um sicherzustellen, dass der Code in der Dokumentation wahr bleibt:

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

Im Gegensatz zu doctest Modul Unittest-Modul so einfach zu bedienen, aber es kann eine umfassende Reihe von Tests in einer separaten Datei zur Verfügung stellen:

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