Funktionen, die mit dem Betriebssystem interagieren
import os
os.getcwd() #Aktuelles Verzeichnis abrufen
os.system('mkdir today') #Befehlsausführung in der Shell auf der Systemseite
Das Modul shutil
ist nützlich für die Verwaltung von Dateien und Verzeichnissen
import shutil
shutil.copyfile('data.db', 'archive.db')
shuti.move('/build/executables', 'installdir')
Das Glob-Modul durchsucht das Verzeichnis nach Platzhaltern und gibt eine Liste der Dateien zurück
import glob
glob.glob('*.py')
#.Eine Liste der Dateien, die mit py enden, wird zurückgegeben
Die Argumente, die beim Ausführen des Python-Befehls übergeben werden, werden in sys.argv
gespeichert
import sys
print(sys.argv)
#Argumentliste abrufen
#Das 0. Element ist der Dateiname
Andere Module, die Argumente verarbeiten, sind:
Verwenden Sie das sys
Modul stdin, stdout, stderr
stderr
ist nützlich, um Nachrichten anzuzeigen, auch wenn stdout
umgeleitet wird
Reguläre Ausdrücke usw. können mit dem Modul "re" implementiert werden
import re
print(re.findall(r'\bf[a-z]*', 'whitch foot or hand fell fastest'))
# ['foot', 'fell', 'fastest']
print(re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat'))
# cat in the hat
Mathematikmodul
import math
math.cos(math.pi / 4)
# 0.7071067811865476
math.log(1024, 2)
# 10.0
zufälliges Modul
import random
random.choice(['apple', 'pear', 'banana'])
#Zufällige Auswahl aus der Liste
# 'apple'
random.sample(range(100), 10)
# range(100)Extrahiere 10 aus(Keine Vervielfältigung)
# [48, 5, 42, 15, 23, 78, 55, 72, 39, 1]
random.random()
#Zufällige Gleitkommazahl
# 0.2785335302723758
random.randrange(6)
# range(6)Zufällig ausgewählte Ganzzahl aus
# 0
Statistikmodul - Statistik finden
import statistics
data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
statistics.mean(data) #durchschnittlich
# 1.6071428571428572
statistics.median(data) #Median
# 1.25
statistics.variance(data) #Verteilt
# 1.3720238095238095
Weitere numerische Module finden Sie im SciPy-Projekt
https://www.scipy.org/
from urllib.request import urlopen
with urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl') as response:
for line in response:
line = line.decode('utf-8') #Binärdaten in Text dekodieren
if 'EST' in line or 'EDT' in line: #Finden Sie die östliche Standardzeit
print(line)
import smtplib
server = smtplib.SMTP('localhost')
server.sendmail('[email protected]', '[email protected]',
"""To: [email protected]
From: [email protected]
Beware the Ideas of March.
"""
)
server.quit()
from datetime import date
now = date.today()
print(now)
# 2019-12-09
print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B."))
# 12-09-19. 09 Dec 2019 is a Monday on the 09 day of December.
birthday = date(1964, 7, 31)
age = now - birthday
print(age.days)
# 20219
Lassen Sie uns den Leistungsunterschied beim Austausch von Variablen messen
from timeit import Timer
time1 = Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
time2 = Timer('a,b = b,a', 'a=1; b=2').timeit()
print(time1)
# 0.020502762
print(time2)
# 0.018866841999999995
Die Module profile
und pstats
eignen sich auch zum Messen großer Codeblöcke.
Schreiben Sie den Test, wenn Sie die Funktion schreiben, und führen Sie den Test während der Entwicklung aus
Das "doctest" -Modul scannt das Modul und validiert die in die Dokumentzeichenfolge eingebetteten Tests.
Der Test listet häufige Aufrufe und deren Ergebnisse in "docstring" auf
def average(values):
"""Berechnen Sie den arithmetischen Durchschnitt aus einer Liste von Zahlen
>>> print(average([20, 30, 70]))
40.0
"""
return sum(values) / len(values)
import doctest
doctest.testmod()
#Eingebettete Tests automatisch validieren
Das Modul "unittest" kann eine umfassendere Reihe von Tests in einer separaten Datei enthalten
import unittest
from doctest_sample import average
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)
with self.assertRaises(ZeroDivisionError):
average([])
with self.assertRaises(TypeError):
average(20, 30, 70)
unittest.main()
Recommended Posts