Python: Module: Unterschied zwischen den Versionen

Aus Flinkwiki
Wechseln zu: Navigation, Suche
(time)
(calendar)
 
(49 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
<div align="right">'''[[Python: Turtle|Zur Seite "Python: Turtle"]]'''</div>
 
<div align="right">'''[[Python: Turtle|Zur Seite "Python: Turtle"]]'''</div>
 
<div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div>
 
<div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div>
<div align="right">'''[[Python: pygame|Zur Seite "Python: pygame"]]'''</div>
+
<div align="right">'''[[Python: Pygame|Zur Seite "Python: Pygame"]]'''</div>
 +
<div align="right">'''[[Python: PyQT|Zur Seite "Python: PyQT"]]'''</div>
 +
<div align="right">'''[[Python: Anaconda|Zur Seite "Python: Anaconda"]]'''</div>
  
 +
== Allgemeines ==
 +
 +
Ein Modul ist eine Datei, in der Python-Definitionen und -Anweisungen definiert sind. Diese können dann in einer anderen Datei oder in der interaktiven Konsole wieder verwendet werden. Moduldateien haben die Endung ''.py''
  
 +
Im [https://docs.python.org/3/py-modindex.html Python Module Index] sind die standardmäßig verfügbaren Module aufgelistet.
  
== Allgemeines ==
+
Die Dateien für die Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version):
 +
/usr/lib/python3.6/
  
Ein Modul ist eine Datei, die Python-Definitionen und -Anweisungen definiert sind. Diese können dann in einer anderen Datei oder in der interaktiven Konsole wieder verwendet werden. Moduldateien haben die Endung ''.py''
+
In Windows liegen die Dateien in Ordner ''Lib'' der Python-Installation.
  
Die Dateien für die externen Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version):
+
Manche Module müssen <u>nachinstalliert</u> werden, z.B.:
  /usr/lib/python3.6/
+
  pip/pip3 install python-docx
 +
Diese Module landen bei Windows im Unterordner ''Lib\site-packages'', bei Ubuntu in ''/usr/local/lib/python3.6/dist-packages''.
  
 
----
 
----
Zeile 49: Zeile 57:
  
 
----
 
----
 +
== locale ==
 +
* https://docs.python.org/3/library/locale.html
 +
Lokalisierung von Datum und Zeit:
 +
<nowiki>
 +
import time, locale
 +
locale.setlocale(locale.LC_ALL, '')
 +
time = time.strftime('Heute ist %A der %d. %B.')
 +
print(time)
 +
</nowiki>
 +
Ausgabe: Heute ist Mittwoch der 10. Juli.
 +
 +
----
 +
 
== time ==
 
== time ==
 +
* https://docs.python.org/3/library/time.html
 
* https://www.programiz.com/python-programming/time
 
* https://www.programiz.com/python-programming/time
 
----
 
----
 +
 +
=== Aktuelles Datum und Uhrzeit ===
 +
 +
''localtime()'' gibt Datum und Uhrzeit als Objekt zurück:
 +
<nowiki>
 +
>>> lt = time.localtime()
 +
>>> print(lt)
 +
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=29, tm_hour=21, tm_min=41, tm_sec=20, tm_wday=5, tm_yday=180, tm_isdst=1)
 +
>>> print(f"Stunde: {lt[3]}")
 +
Stunde: 21
 +
</nowiki>
 +
 +
----
 +
 +
<nowiki>
 +
zeit = time.localtime()
 +
print(zeit)
 +
#print ("Datum: %d.%d.%d"%(zeit[2], zeit[1], zeit[0]))
 +
#print ("Uhrzeit: %d:%d:%d"%(zeit[3], zeit[4], zeit[5]))
 +
print(f"Datum: {zeit[2]}.{zeit[1]}.{zeit[0]}")
 +
print (f"Uhrzeit: {zeit[3]}.{zeit[4]}.{zeit[5]}")
 +
</nowiki>
 +
 +
----
 +
=== Dauer eines Vorgangs ===
  
 
''time.time()''gibt die Zeit ab 01. Januar 1970 in Sekunden wieder. Aus der Differenz zwischen zwei Zeitstempeln kann man die Dauer eines Vorgangs berechnen:
 
''time.time()''gibt die Zeit ab 01. Januar 1970 in Sekunden wieder. Aus der Differenz zwischen zwei Zeitstempeln kann man die Dauer eines Vorgangs berechnen:
Zeile 65: Zeile 112:
 
29.088154077529907
 
29.088154077529907
 
</nowiki>
 
</nowiki>
 
 
----
 
----
  
 
''asctime()'' wandelt Zeitangaben in Form eines Tupels mit 9 Elementen  
 
''asctime()'' wandelt Zeitangaben in Form eines Tupels mit 9 Elementen  
(Year, month, day, hour, minute, second, wday, yday, isdst) in ein lesbares Format um ( <nowiki>https://www.tutorialspoint.com/python/python_date_time.htm</nowiki> Tutorialspoint: aus Adresse Bindestrich entfernen]):
+
(Year, month, day, hour, minute, second, wday, yday, isdst) in ein lesbares Format um (<nowiki>https://www.tutorialspoint.com/python/python_date_time.htm)</nowiki>:
 
  <nowiki>
 
  <nowiki>
>>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0)
+
>>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0) # Die letzte 0 bedeutet: keine Sommerzeit. 1 = Sommerzeit, neg. Zahl > keine Information)
 
>>> print(time.asctime(zeit))
 
>>> print(time.asctime(zeit))
 
Fri Dec 28 20:09:04 2019
 
Fri Dec 28 20:09:04 2019
Zeile 81: Zeile 127:
 
  >>> time.asctime()
 
  >>> time.asctime()
 
  'Sat Jun 29 20:42:27 2019'
 
  'Sat Jun 29 20:42:27 2019'
 +
 +
----
 +
 +
=== Datum- und Zeitdaten in der jeweiligen Landessprache: strftime() ===
 +
Formatiert Datum- und Zeitdaten in der jeweiligen Landessprache.[https://docs.python.org/3/library/time.html#time.strftime]:
 +
<nowiki>
 +
import time, locale
 +
locale.setlocale(locale.LC_ALL, '')
 +
time = time.strftime('Heute ist %A der %d. %B.')
 +
print(time)
 +
</nowiki>
 +
Ausgabe: Heute ist Mittwoch der 10. Juli.
 +
 +
----
 +
 +
=== sleep() ===
 +
 +
''time.sleep()'' (mit Zeitangabe in Sekunden) bewirkt eine Pause zwischen den Anweisungen.
 +
 +
----
  
 
== datetime ==
 
== datetime ==
 +
* https://docs.python.org/3/library/datetime.html
 
Ausgabe der Indexnummer für den aktuellen Wochentag:
 
Ausgabe der Indexnummer für den aktuellen Wochentag:
 
  <nowiki>
 
  <nowiki>
Zeile 98: Zeile 165:
  
 
== os ==
 
== os ==
 
+
*https://docs.python.org/3/library/os.html
 
+
----
 
===Seite aufräumen ===
 
===Seite aufräumen ===
  
Zeile 111: Zeile 178:
  
 
== math ==
 
== math ==
 
+
* https://docs.python.org/3/library/math.html
 +
----
 
sqrt:
 
sqrt:
 
  >>> import math
 
  >>> import math
Zeile 117: Zeile 185:
 
  10.0
 
  10.0
  
sin, cos, tan
+
Weitere Methoden:
  
 +
sin(), cos(), tan()
  
 
----
 
----
 +
== calendar ==
 +
<nowiki>
 +
import calendar
 +
kalenderblatt = calendar.TextCalendar(calendar.MONDAY)
 +
ausgabe = kalenderblatt.formatmonth(2020,12)
 +
print(ausgabe)</nowiki>[https://www.python-lernen.de/python-modul-calendar.htm]
 +
 +
Gibt den Kalender für Dezember 2020 aus, wobei die Woche mit Montag beginnt.
 +
 +
----
 +
<nowiki>
 +
import calendar
 +
kalenderblatt = calendar.LocaleTextCalendar(calendar.MONDAY)
 +
ausgabe = kalenderblatt.formatyear(2021, 2, 1, 1, 3)
 +
print(ausgabe)</nowiki>[https://www.python-lernen.de/python-modul-calendar.htm]
 +
 +
Jahreskalender 2021
 +
 +
----
 +
Prüfung auf Schaltjahr:
 +
>>> import calendar
 +
>>> schaltjahr = calendar.isleap(2020)
 +
>>> schaltjahr
 +
True
 +
 +
----
 +
 
== random ==
 
== random ==
 +
 +
Das Modul ''random'' erzeugt sogenannte Pseudozufallszahlen.
 +
 +
* https://docs.python.org/3/library/random.html
 +
----
 +
 +
''seed'' initialisiert den Zufalls-Generator neu.
 +
import random
 +
random.seed()
 +
[https://pynative.com/python-random-seed/]
 +
 +
----
  
 
''randint'':
 
''randint'':
Zeile 144: Zeile 252:
 
  random.shuffle(namen)
 
  random.shuffle(namen)
 
  print(namen) # Ausgabe: ['Anna', 'Peter', 'Maria', 'Paul']
 
  print(namen) # Ausgabe: ['Anna', 'Peter', 'Maria', 'Paul']
 +
Die Ausgangsliste wird verändert.
 +
 +
To shuffle an immutable sequence and return a new shuffled list, use sample(x, k=len(x)) instead.[https://docs.python.org/3/library/random.html?highlight=shuffle#random.shuffle]
 +
 +
----
 +
 +
Die Funktion ''sample'' mischt die Elemente einer Liste:
 +
...
 +
namen2 = random.sample(namen,3)
 +
>>> namen2 = sample(namen,3)
 +
>>> print(namen2) # Ausgabe: ['Peter', 'Maria', 'Paul']
 +
''sample'' liefert einen Rückgabewert. Die Ausgangsliste bleibt unverändert.
  
 
----
 
----
  
 
== copy ==
 
== copy ==
 
+
* https://docs.python.org/3/library/copy.html
 +
----
 
Man kann einzelne Objekte ebenso wie ganze Listen kopieren.
 
Man kann einzelne Objekte ebenso wie ganze Listen kopieren.
 
  <nowiki>
 
  <nowiki>
Zeile 163: Zeile 284:
 
tierliste1 = [elsa,egon,coq]
 
tierliste1 = [elsa,egon,coq]
 
tierliste2 = copy.copy(tierliste1)
 
tierliste2 = copy.copy(tierliste1)
print(tierliste1[0].art) # Ausgabe: Kurh
+
print(tierliste1[0].art) # Ausgabe: Kuh
 
tierliste1[0].art = "Zebra"
 
tierliste1[0].art = "Zebra"
 
print(tierliste2[0].art) # Ausgabe: Zebra
 
print(tierliste2[0].art) # Ausgabe: Zebra
Zeile 178: Zeile 299:
  
 
== shutil ==
 
== shutil ==
 
+
* https://docs.python.org/3/library/shutil.html
 +
----
 
Kopieren von Dateien:
 
Kopieren von Dateien:
 
  import shutil
 
  import shutil
 
  shutil.copy('text01.txt', 'text03.txt')
 
  shutil.copy('text01.txt', 'text03.txt')
 +
 
----
 
----
  
 
== sys ==
 
== sys ==
 +
* https://docs.python.org/3/library/sys.html
 +
----
  
 
Beenden der Shell (z. B. in ''bash'' oder ''cmd'', nicht aber in IDLE):
 
Beenden der Shell (z. B. in ''bash'' oder ''cmd'', nicht aber in IDLE):
 
  import sys
 
  import sys
 
  sys.exit()
 
  sys.exit()
 +
 +
----
  
 
Mit ''sys.stdin.readline()'' kann man ähnlich wie mit ''input'' eine Zeile Text einlesen. Der Unterschied ist, dass man mit ''readline''
 
Mit ''sys.stdin.readline()'' kann man ähnlich wie mit ''input'' eine Zeile Text einlesen. Der Unterschied ist, dass man mit ''readline''
Zeile 196: Zeile 323:
 
  # Eingabe: Das ist ein langer String.
 
  # Eingabe: Das ist ein langer String.
 
  print(x) # Ausgabe: Das ist ein
 
  print(x) # Ausgabe: Das ist ein
 +
 +
----
  
 
''sys.stdout.write'' funktioniert ähnlich wie ''print'', gibt aber auch die Anzahl der Zeichen aus:
 
''sys.stdout.write'' funktioniert ähnlich wie ''print'', gibt aber auch die Anzahl der Zeichen aus:
Zeile 201: Zeile 330:
 
  >>> sys.stdout.write("Hallo Leute!")
 
  >>> sys.stdout.write("Hallo Leute!")
 
  Hallo Leute!12  
 
  Hallo Leute!12  
 +
 +
----
  
 
Die Python-Versionsabfrage kann mit ''sys.version'' erfolgen:
 
Die Python-Versionsabfrage kann mit ''sys.version'' erfolgen:
 
  >>> print(sys.version)
 
  >>> print(sys.version)
 
  3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]
 
  3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]
 +
 +
----
 +
 +
Exception-Behandlung:
 +
...
 +
<nowiki>except:
 +
print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0])</nowiki>
 +
Ausgabe: Folgender Fehler ist aufgetreten: <class 'ValueError'> | Folgender Fehler ist aufgetreten: <class 'ZeroDivisionError'>
 +
- je nach erkanntem Fehler
  
 
----
 
----
Zeile 217: Zeile 357:
 
Installation in Windows:
 
Installation in Windows:
 
  pip install pyperclip
 
  pip install pyperclip
 +
 +
----
 +
 +
== pickle ==
 +
 +
''pickle'' dient der [https://www.it-visions.de/glossar/alle/3469/Serialisierung.aspx Serialisierung] und Deserialisierung von Objekten. Ein Beispiel für die Anwendung ist die Speicherung von Score-Daten (z. B. Dictionary) in einem Spiel.
 +
 +
In Datei schreiben, hier Beispiel String:
 +
<nowiki>
 +
import pickle
 +
inhalt = """Text und
 +
noch mehr Text"""
 +
speichern = open('inhalt.dat', 'wb')
 +
pickle.dump(inhalt, speichern)
 +
speichern.close()
 +
</nowiki>
 +
 +
Datei laden:
 +
<nowiki>
 +
import pickle
 +
laden = open('inhalt.dat', 'rb')
 +
geladen = pickle.load(laden)
 +
laden.close()
 +
print(geladen)  # Anzeige der Klartext-Daten
 +
</nowiki>
 +
... und ggf. in eine Textdatei schreiben:
 +
<nowiki>
 +
speichern = open('inhalt.txt', 'w')
 +
speichern.write(geladen) # schreibt Textdatei
 +
speichern.close()
 +
</nowiki>
 +
 +
----
 +
 +
== keyword ==
 +
 +
Überprüfung, ob es sich um ein Schlüsselwort handelt:
 +
<nowiki>
 +
>>> import keyword
 +
>>> keyword.iskeyword('import')
 +
True
 +
>>> keyword.iskeyword('export')
 +
False
 +
>>>
 +
</nowiki>
 +
<code>print(keyword.kwlist)</code> listet die Schlüsselwörter auf.
 +
 +
----
 +
== shapes ==
 +
 +
pip3 install shapes
 +
 +
----
 +
 +
== playsound ==
 +
 +
* https://pypi.org/project/playsound/
 +
 +
''playsound'' is the most straightforward package to use if you simply want to play a WAV or MP3 file.
 +
It offers no functionality other than simple playback.[http://www.gtkdb.de/index_11_1172.html]
 +
 +
Installation:
 +
pip install playsound
 +
 +
Beispiel:
 +
from playsound import playsound
 +
playsound('pfadangabe/cat.wav')
 +
 +
----
 +
==  seaborn ==
 +
 +
* https://seaborn.pydata.org/installing.html
 +
 +
pip install seaborn
 +
 +
----
 +
 +
== packages ==
 +
 +
Sammlungen von Modulen heißen '''packages'''.
 +
 +
* [https://pypi.org/ The Python Package Index (PyPI) is a repository of software for the Python programming language.]
 +
 +
* [https://www.ubuntupit.com/best-python-libraries-and-packages-for-beginners/ UbuntuPit: The 30 Best Python Libraries and Packages for Beginners]
  
 
----
 
----
Zeile 226: Zeile 450:
 
* [https://docs.python.org/3/py-modindex.html Python Module Index]
 
* [https://docs.python.org/3/py-modindex.html Python Module Index]
  
* * https://py-tutorial-de.readthedocs.io/de/python-3.3/modules.html
+
* https://py-tutorial-de.readthedocs.io/de/python-3.3/modules.html
  
 
----
 
----
  
 
[[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] |
 
[[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] |

Aktuelle Version vom 31. Dezember 2020, 16:01 Uhr

Seitenübersicht
Zur Seite "Python"
Zur Seite "Python: Klassen"
Zur Seite "Python: Turtle"
Zur Seite "Python: Tkinter"
Zur Seite "Python: Pygame"
Zur Seite "Python: PyQT"
Zur Seite "Python: Anaconda"

Allgemeines

Ein Modul ist eine Datei, in der Python-Definitionen und -Anweisungen definiert sind. Diese können dann in einer anderen Datei oder in der interaktiven Konsole wieder verwendet werden. Moduldateien haben die Endung .py

Im Python Module Index sind die standardmäßig verfügbaren Module aufgelistet.

Die Dateien für die Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version):

/usr/lib/python3.6/

In Windows liegen die Dateien in Ordner Lib der Python-Installation.

Manche Module müssen nachinstalliert werden, z.B.:

pip/pip3 install python-docx

Diese Module landen bei Windows im Unterordner Lib\site-packages, bei Ubuntu in /usr/local/lib/python3.6/dist-packages.


Import

import modulname
import includes.modulname as modulname
from modulname import funktionsname
from  modulname import *

Modul testen

Bevor man ein Modul in einem Skript aufruft, sollte man es zuerst "stand alone" testen:

def anrede(person, nachricht):
	print("{}, {}".format(person, nachricht))

def abschied():
	print("Tschüss!")

if __name__ == "__main__":
        anrede("Hein","mein Freund!")
        abschied()

__name__ steht für den Dateinamen. Wenn das Programm ausgeführt wird, ist __name__ gleich __main__. Die Bedingung if __name__ == __main__ bewirkt, dass die folgende Code nur ausgeführt wird, wenn dieses Programm das Hauptprogramm ist, welches aufgerufen wurde. Der zu testende Code wird also nicht ausgeführt, wenn das Modul nach Import in einer anderen Datei ausgeführt wird.


locale

Lokalisierung von Datum und Zeit:

import time, locale
locale.setlocale(locale.LC_ALL, '')
time = time.strftime('Heute ist %A der %d. %B.')
print(time)

Ausgabe: Heute ist Mittwoch der 10. Juli.


time


Aktuelles Datum und Uhrzeit

localtime() gibt Datum und Uhrzeit als Objekt zurück:

>>> lt = time.localtime()
>>> print(lt)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=29, tm_hour=21, tm_min=41, tm_sec=20, tm_wday=5, tm_yday=180, tm_isdst=1)
>>> print(f"Stunde: {lt[3]}")
Stunde: 21


zeit = time.localtime()
print(zeit)
#print ("Datum: %d.%d.%d"%(zeit[2], zeit[1], zeit[0]))
#print ("Uhrzeit: %d:%d:%d"%(zeit[3], zeit[4], zeit[5]))
print(f"Datum: {zeit[2]}.{zeit[1]}.{zeit[0]}")
print (f"Uhrzeit: {zeit[3]}.{zeit[4]}.{zeit[5]}")


Dauer eines Vorgangs

time.time()gibt die Zeit ab 01. Januar 1970 in Sekunden wieder. Aus der Differenz zwischen zwei Zeitstempeln kann man die Dauer eines Vorgangs berechnen:

>>> import time
>>> t1 = time.time()
>>> t1
1561833386.9472973
>>> t2 = time.time()
>>> t2
1561833416.0354514
>>> print(t2 - t1)
29.088154077529907


asctime() wandelt Zeitangaben in Form eines Tupels mit 9 Elementen (Year, month, day, hour, minute, second, wday, yday, isdst) in ein lesbares Format um (https://www.tutorialspoint.com/python/python_date_time.htm):

>>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0) # Die letzte 0 bedeutet: keine Sommerzeit. 1 = Sommerzeit, neg. Zahl > keine Information)
>>> print(time.asctime(zeit))
Fri Dec 28 20:09:04 2019
>>> 

asctime() ohne Argumente gibt das aktuelle Datum und die Uhrzeit aus:

>>> import time
>>> time.asctime()
'Sat Jun 29 20:42:27 2019'

Datum- und Zeitdaten in der jeweiligen Landessprache: strftime()

Formatiert Datum- und Zeitdaten in der jeweiligen Landessprache.[1]:

import time, locale
locale.setlocale(locale.LC_ALL, '')
time = time.strftime('Heute ist %A der %d. %B.')
print(time)

Ausgabe: Heute ist Mittwoch der 10. Juli.


sleep()

time.sleep() (mit Zeitangabe in Sekunden) bewirkt eine Pause zwischen den Anweisungen.


datetime

Ausgabe der Indexnummer für den aktuellen Wochentag:

import datetime
tage = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
wochentag = datetime.datetime.today().weekday()
print ("Heute ist",tage[wochentag])

Jahreszahl ermitteln:

x = datetime.datetime.now()
year = x.year

os


Seite aufräumen

Im Terminal von Linux oder Mac:

os.system("clear")

In DOS-Box (cmd)):

os.system("cls")

math


sqrt:

>>> import math
>>> math.sqrt(100)
10.0

Weitere Methoden:

sin(), cos(), tan()


calendar

import calendar
kalenderblatt = calendar.TextCalendar(calendar.MONDAY)
ausgabe = kalenderblatt.formatmonth(2020,12)
print(ausgabe)[2]

Gibt den Kalender für Dezember 2020 aus, wobei die Woche mit Montag beginnt.


import calendar
kalenderblatt = calendar.LocaleTextCalendar(calendar.MONDAY)
ausgabe = kalenderblatt.formatyear(2021, 2, 1, 1, 3)
print(ausgabe)[3]

Jahreskalender 2021


Prüfung auf Schaltjahr:

>>> import calendar
>>> schaltjahr = calendar.isleap(2020)
>>> schaltjahr
True

random

Das Modul random erzeugt sogenannte Pseudozufallszahlen.


seed initialisiert den Zufalls-Generator neu.

import random
random.seed()

[4]


randint:

import random
zahl = random.randint(1,1000)

randint() ermittelt eine "zufällige" Ganzzahl (int) aus dem angegebenen Bereich (inklusive Start- und Stoppwert).


choice: wählt ein zufälliges Element aus einer Sequenz:

import random
namen = ["Peter","Paul","Maria","Anna"]
name1 = random.choice(namen)
print(name1) # Ausgabe: Maria


Die Funktion shuffle mischt die Elemente einer Liste:

...
random.shuffle(namen)
print(namen) # Ausgabe: ['Anna', 'Peter', 'Maria', 'Paul']

Die Ausgangsliste wird verändert.

To shuffle an immutable sequence and return a new shuffled list, use sample(x, k=len(x)) instead.[5]


Die Funktion sample mischt die Elemente einer Liste:

...
namen2 = random.sample(namen,3)
>>> namen2 = sample(namen,3)
>>> print(namen2) # Ausgabe: ['Peter', 'Maria', 'Paul']

sample liefert einen Rückgabewert. Die Ausgangsliste bleibt unverändert.


copy


Man kann einzelne Objekte ebenso wie ganze Listen kopieren.

import copy
class Tier:
    def __init__(self,art,beine,farbe):
        self.art = art
        self.beine = beine
        self.farbe = farbe

elsa = Tier("Kuh",4,"schwarzweiß")
egon = Tier("Pferd",4,"braun")
coq = Tier("Hahn",2,"rot")
tierliste1 = [elsa,egon,coq]
tierliste2 = copy.copy(tierliste1)
print(tierliste1[0].art) # Ausgabe: Kuh
tierliste1[0].art = "Zebra"
print(tierliste2[0].art) # Ausgabe: Zebra
tierliste3 = copy.deepcopy(tierliste1)
tierliste1[0].art = "Katze"
print(tierliste1[0].art) # Ausgaben: Katze
print(tierliste3[0].art) # Ausgabe: Zebra

copy erstellt eine flache Kopie. Es wird nur das Listenobjekt kopiert, nicht die Objekte in der Liste:

Eine Kopie der Liste samt der darin enthaltenen Objekte erzeugt man mit copy.deepcopy().


shutil


Kopieren von Dateien:

import shutil
shutil.copy('text01.txt', 'text03.txt')

sys


Beenden der Shell (z. B. in bash oder cmd, nicht aber in IDLE):

import sys
sys.exit()

Mit sys.stdin.readline() kann man ähnlich wie mit input eine Zeile Text einlesen. Der Unterschied ist, dass man mit readline die Länge des Strings begrenzen kann:

import sys
x = sys.stdin.readline(11)
# Eingabe: Das ist ein langer String.
print(x) # Ausgabe: Das ist ein

sys.stdout.write funktioniert ähnlich wie print, gibt aber auch die Anzahl der Zeichen aus:

>>> import sys
>>> sys.stdout.write("Hallo Leute!")
Hallo Leute!12 

Die Python-Versionsabfrage kann mit sys.version erfolgen:

>>> print(sys.version)
3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]

Exception-Behandlung:

...
except:
	print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0])

Ausgabe: Folgender Fehler ist aufgetreten: <class 'ValueError'> | Folgender Fehler ist aufgetreten: <class 'ZeroDivisionError'> - je nach erkanntem Fehler


pyperclip

Cross-platform clipboard module for Python.

Installation in Ubuntu:

apt-get install python3-pyperclip

Installation in Windows:

pip install pyperclip

pickle

pickle dient der Serialisierung und Deserialisierung von Objekten. Ein Beispiel für die Anwendung ist die Speicherung von Score-Daten (z. B. Dictionary) in einem Spiel.

In Datei schreiben, hier Beispiel String:

import pickle
inhalt = """Text und
noch mehr Text"""
speichern = open('inhalt.dat', 'wb')
pickle.dump(inhalt, speichern)
speichern.close()

Datei laden:

import pickle
laden = open('inhalt.dat', 'rb')
geladen = pickle.load(laden)
laden.close()
print(geladen)  # Anzeige der Klartext-Daten

... und ggf. in eine Textdatei schreiben:

speichern = open('inhalt.txt', 'w')
speichern.write(geladen) # schreibt Textdatei
speichern.close()


keyword

Überprüfung, ob es sich um ein Schlüsselwort handelt:

>>> import keyword
>>> keyword.iskeyword('import')
True
>>> keyword.iskeyword('export')
False
>>> 

print(keyword.kwlist) listet die Schlüsselwörter auf.


shapes

pip3 install shapes

playsound

playsound is the most straightforward package to use if you simply want to play a WAV or MP3 file. It offers no functionality other than simple playback.[6]

Installation:

pip install playsound

Beispiel:

from playsound import playsound
playsound('pfadangabe/cat.wav')

seaborn

pip install seaborn

packages

Sammlungen von Modulen heißen packages.


Quellen


| |