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