image

image

Zu diesem Buch – sowie zu vielen weiteren dpunkt.büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus+:

www.dpunkt.plus

Al Sweigart

Routineaufgaben mit
Python automatisieren

Praktische Programmierlösungen für Einsteiger

2., aktualisierte und erweiterte Auflage

image

Al Sweigart

Lektorat: Dr. Michael Barabas

nach der Originalvorlage von No Starch Press

Bibliografische Information der Deutschen Nationalbibliothek

ISBN:

2., aktualisierte und erweiterte Auflage 2020

Copyright © 2020 by Al Sweigart. Title of English-language original: Automate the Boring Stuff with Python, 2th Edition: Practical Programming for Total Beginners, ISBN 978-1-59327-992-9, published by No Starch Press. German-language edition copyright © 2020 by dpunkt.verlag. All rights reserved.

Hinweis:

image

Schreiben Sie uns:

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

5 4 3 2 1 0

Inhalt

Der Autor

Der Fachgutachter

Danksagung

Einleitung

Für wen ist dieses Buch gedacht?

Programmierstil

Was ist Programmierung?

Was ist Python?

Programmierer müssen nicht viel Mathe können

Sie sind nie zu alt, um programmieren zu lernen

Programmierung ist kreativ

Der Aufbau dieses Buchs

Python herunterladen und installieren

Mu herunterladen und installieren

Mu starten

IDLE starten

Die interaktive Shell

Drittanbietermodule installieren

Hilfe finden

Sinnvolle Fragen stellen

Zusammenfassung

Teil 1Grundlagen der Python-Programmierung

 

1Grundlagen von Python

Ausdrücke in die interaktive Shell eingeben

Die Datentypen für ganze Zahlen, Fließkommazahlen und Strings

Stringverkettung und -wiederholung

Werte in Variablen speichern

Zuweisungsanweisungen

Variablennamen

Ihr erstes Programm

Analyse des Programms

Kommentare

Die Funktion print()

Die Funktion input()

Den Benutzernamen ausgeben

Die Funktion len()

Die Funktionen str(), int() und float()

Zusammenfassung

Wiederholungsfragen

2Flusssteuerung

Boolesche Werte

Vergleichsoperatoren

Boolesche Operatoren

Binäre boolesche Operatoren

Der Operator not

Kombinierte Verwendung von booleschen und Vergleichsoperatoren

Elemente zur Flusssteuerung

Bedingungen

Codeblöcke

Programmausführung

Flusssteuerungsanweisungen

If-Anweisungen

Else-Anweisungen

Elif-Anweisungen

While-Schleifen

Break-Anweisungen

Continue-Anweisungen

For-Schleifen und die Funktion range()

Module importieren

From-import-Anweisungen

Programme mit sys.exit() vorzeitig beenden

Ein kurzes Programm: Zahlen raten

Ein kurzes Programm: Stein, Schere, Papier

Zusammenfassung

Wiederholungsfragen

3Funktionen

Def-Anweisungen mit Parametern

Terminologie

Rückgabewerte und die Anweisung return

Der Wert None

Schlüsselwortargumente und print()

Der Aufrufstack

Lokaler und globaler Gültigkeitsbereich

Lokale Variablen können im globalen Gültigkeitsbereich nicht verwendet werden

Lokale Gültigkeitsbereiche können keine Variablen aus anderen lokalen Gültigkeitsbereichen verwenden

Globale Variablen können von einem lokalen Gültigkeitsbereich aus gelesen werden

Lokale und globale Variablen mit demselben Namen

Die Anweisung global

Ausnahmebehandlung

Ein kurzes Programm: Zickzackmuster

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Die Collatz-Folge

Eingabevalidierung

4Listen

Der Datentyp für Listen

Einzelne Elemente einer Liste mithilfe des Index abrufen

Negative Indizes

Teillisten mithilfe von Slices abrufen

Die Länge einer Liste mit len() abrufen

Werte in einer Liste mithilfe des Index ändern

Listenverkettung und -wiederholung

Elemente mit del aus einer Liste entfernen

Listen verwenden

Listen in for-Schleifen

Die Operatoren in und not in

Der Trick mit der Mehrfachzuweisung

Die Funktion enumerate() für Listen

Die Funktionen random.choice() und random.shuffle() für Listen

Erweiterte Zuweisungsoperatoren

Methoden

Elemente in einer Liste mit der Methode index() finden

Elemente mit den Methoden append() und insert() zu Listen hinzufügen

Elemente mit remove() aus Listen entfernen

Elemente in einer Liste mit sort() sortieren

Reihenfolge der Listeneinträge mit reverse() umkehren

Beispielprogramm: Magic 8 Ball mithilfe einer Liste

Sequenzielle Datentypen

Veränderbare und unveränderbare Datentypen

Der Datentyp für Tupel

Typen mit den Funktionen list() und tuple() umwandeln

Verweise

Identität und die Funktion id()

Verweise übergeben

Die Funktionen copy() und deepcopy() des Moduls copy

Ein kurzes Programm: Conways Spiel des Lebens

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Kommacode

Münzwurffolgen

Zeichenbildraster

5Dictionaries und Datenstrukturen

Der Datentyp für Dictionaries

Dictionaries und Listen im Vergleich

Die Methoden keys(), values() und items()

Das Vorhandensein eines Schlüssels oder Wertes im Dictionary ermitteln

Die Methode get()

Die Methode setdefault()

Saubere Ausgabe

Datenstrukturen zur Modellierung realer Objekte

Ein Tic-Tac-Toe-Brett

Verschachtelte Dictionaries und Listen

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Validierer für Schach-Dictionary

Inventar für ein Fantasyspiel

Eine Funktion zum Hinzufügen von Listeninhalten zum Inventar-Dictionary

6Stringbearbeitung

Umgang mit Strings

Stringliterale

Strings indizieren und Slices entnehmen

Die Operatoren in und not in für Strings

Strings in andere Strings einfügen

Nützliche Stringmethoden

Die Stringmethoden upper(), lower(), isupper() und islower()

Die isX-Stringmethoden

Die Stringmethoden startswith() und endswith()

Die Methoden join() und split()

Strings mit der Methode partition() aufteilen

Text mit rjust(), ljust() und center() ausrichten

Weißraum mit strip(), rstrip() und lstrip() entfernen

Die Funktionen ord() und chr() für numerische Zeichenwerte

Strings mit dem Modul pyperclip kopieren und einfügen

Projekt: Automatisierte Nachrichten mithilfe einer Mehrfach-Zwischenablage

Schritt 1: Programmdesign und Datenstrukturen

Schritt 2: Befehlszeilenargumente verarbeiten

Schritt 3: Die richtige Antwort kopieren

Projekt: Aufzählungspunkte zu einem Wiki-Markup hinzufügen

Schritt 1: Text von und zur Zwischenablage übertragen

Schritt 2: Textzeilen trennen und Sternchen hinzufügen

Schritt 3: Die veränderten Zeilen zusammenfügen

Ein kurzes Programm: Pig Latin

Zusammenfassung

Wiederholungsfragen

Übungsprojekt

Tabellenausgabe

Bots für Zombie Dice

Teil 2Aufgaben automatisieren

 

7Mustervergleich mit regulären Ausdrücken

Textmuster ohne reguläre Ausdrücke finden

Textmuster mithilfe regulärer Ausdrücke finden

Regex-Objekte erstellen

Vergleiche mit einem Regex-Objekt

Zusammenfassung: Mustervergleich mit regulären Ausdrücken

Weitere Möglichkeiten für den Mustervergleich mithilfe regulärer Ausdrücke

Gruppierung durch Klammern

Mithilfe der Pipe nach Übereinstimmungen mit mehreren Gruppen suchen

Optionale Übereinstimmung mit dem Fragezeichen

Mit dem Sternchen nach null oder mehr Übereinstimmungen suchen

Mit dem Pluszeichen nach einer oder mehr Übereinstimmungen suchen

Mit geschweiften Klammern nach einer genauen Zahl von Wiederholungen suchen

Gieriger und nicht gieriger Mustervergleich

Die Methode findall()

Zeichenklassen

Eigene Zeichenklassen bilden

Zirkumflex und Dollarzeichen

Das Jokerzeichen

Beliebige Übereinstimmungen mit Punkt-Stern finden

Zeilenumbrüche mit dem Punktsymbol finden

Übersicht über Regex-Symbole

Übereinstimmungen ohne Berücksichtigung der Groß- und Kleinschreibung

Strings mit der Methode sub() ersetzen

Umgang mit komplizierten regulären Ausdrücken

Die Variablen re.IGNORECASE, re.DOTALL und re.VERBOSE kombinieren

Projekt: Extraktionsprogramm für Telefonnummern und E-Mail-Adressen

Schritt 1: Einen regulären Ausdruck für Telefonnummern erstellen

Schritt 2: Einen regulären Ausdruck für E-Mail-Adressen erstellen

Schritt 3: Alle Überstimmungen im Inhalt der Zwischenablage finden

Schritt 4: Die gefundenen Übereinstimmungen zu einem String kombinieren

Das Programm ausführen

Ideen für ähnliche Programme

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Datumserkennung

Passwortstärke ermitteln

Regex-Version von strip()

8Eingabevalidierung

Das Modul PyInputPlus

Die Schlüsselwortargumente min, max, greaterThan und lessThan

Das Schlüsselwortargument blank

Die Schlüsselwortargumente limit, timeout und default

Die Schlüsselwortargumente allowRegexes und blockRegexes

Eine eigene Validierungsfunktion an inputCustom() übergeben

Projekt: Einen Trottel stundenlang beschäftigen

Projekt: Multiplikationstest

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Sandwichzubereiter

Ein eigenes Programm für den Multiplikationstest

9Dateien lesen und schreiben

Dateien und Dateipfade

Backslash unter Windows und Schrägstrich unter macOS und Linux

Pfade mit dem Operator / zusammenfügen

Das aktuelle Arbeitsverzeichnis

Das Benutzerverzeichnis

Absolute und relative Pfade

Neue Ordner mit os.makedirs() erstellen

Absolute und relative Pfade verwenden

Die Komponenten eines Dateipfads abrufen

Dateigrößen und Ordnerinhalte ermitteln

Eine Dateiliste mit Glob-Mustern bearbeiten

Die Gültigkeit von Pfaden prüfen

Dateien lesen und schreiben

Dateien mit der Funktion open() öffnen

Die Inhalte einer Datei lesen

Dateien schreiben

Variablen mit dem Modul shelve speichern

Variablen mit der Funktion pprint.pformat() speichern

Projekt: Zufallsgenerator für Tests

Schritt 1: Die Daten für den Test in einem Dictionary speichern

Schritt 2: Die Fragebogendatei erstellen und die Fragen mischen

Schritt 3: Die Auswahl der möglichen Antworten zusammenstellen

Schritt 4: Den Inhalt der Dateien für die Frage- und Lösungsbogen schreiben

Projekt: Aktualisierbare Mehrfach-Zwischenablage

Schritt 1: Kommentare und Vorbereitungen für die Shelf-Daten

Schritt 2: Den Inhalt der Zwischenablage unter einem Schlüsselwort speichern

Schritt 3: Schlüsselwörter auflisten und Inhalte laden

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Erweiterte Mehrfach-Zwischenablage

Lückentextspiel

Regex-Suche

10Dateien verwalten

Das Modul shutil

Dateien und Ordner kopieren

Dateien und Ordner verschieben und umbenennen

Dateien und Ordner unwiederbringlich löschen

Sicheres Löschen mit dem Modul send2trash

Einen Verzeichnisbaum durchlaufen

Dateien mit dem Modul zipfile komprimieren

ZIP-Dateien lesen

ZIP-Dateien entpacken

ZIP-Dateien erstellen und Inhalte hinzufügen

Projekt: Amerikanische Datumsangaben in Dateinamen in europäische Datumsangaben ändern

Projekt: Amerikanische Datumsangaben in Dateinamen in …

Schritt 1: Einen regulären Ausdruck für amerikanische Datumsangaben definieren

Schritt 2: Die einzelnen Teile der Datumsangabe in den Dateinamen ermitteln

Schritt 3: Die neuen Dateinamen zusammenstellen und die Dateien umbenennen

Vorschläge für ähnliche Programme

Projekt: Einen Ordner in einer ZIP-Datei sichern

Schritt 1: Den Namen der ZIP-Datei bestimmen

Schritt 2: Die neue ZIP-Datei erstellen

Schritt 3: Den Verzeichnisbaum durchlaufen und Inhalte zur ZIP-Datei hinzufügen

Vorschläge für ähnliche Programme

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Selektives Kopieren

Nicht mehr benötigte Dateien löschen

Lücken entfernen

11Debugging

Ausnahmen auslösen

Traceback als String abrufen

Zusicherungen (Assertions)

Zusicherungen in einem Ampelsimulator

Protokollierung

Das Modul logging verwenden

Kein Debugging mit print()

Protokolliergrade

Die Protokollierung deaktivieren

Protokollierung in eine Datei

Der Debugger von Mu

Continue

Step In

Step Over

Step Out

Stop

Debugging eines Additionsprogramms

Haltepunkte

Zusammenfassung

Wiederholungsfragen

Übungsprojekt

Münzwurfprogramm

12Web Scraping

Projekt: mapIt.py mit dem Modul webbrowser

Schritt 1: Die URL herausfinden

Schritt 2: Befehlszeilenargumente verarbeiten

Schritt 3: Den Inhalt der Zwischenablage verarbeiten und den Browser starten

Vorschläge für ähnliche Programme

Dateien mithilfe des Moduls requests aus dem Web herunterladen

Eine Webseite mit der Funktion requests.get() herunterladen

Auf Fehler prüfen

Heruntergeladene Dateien auf der Festplatte speichern

HTML

Quellen zu HTML

Ein kleiner Auffrischungskurs

Den HTML-Quellcode einer Webseite einsehen

Die Entwicklertools des Browsers öffnen

HTML-Elemente mithilfe der Entwicklertools finden

HTML mit dem Modul bs4 durchsuchen

Ein BeautifulSoup-Objekt aus dem HTML-Text erstellen

Elemente mit der Methode select() finden

Daten aus den Attributen eines Elements abrufen

Projekt: Alle Suchergebnisse öffnen

Schritt 1: Die Befehlszeilenargumente abrufen und die Suchergebnisseite anfordern

Schritt 2: Alle Ergebnisse finden

Schritt 3: Browsertabs für jedes Suchergebnis öffnen

Vorschläge für ähnliche Programme

Projekt: Alle XKCD-Comics herunterladen

Schritt 1: Den Aufbau des Programms festlegen

Schritt 2: Die Webseite herunterladen

Schritt 3: Das Bild des Comics finden und herunterladen

Schritt 4: Das Bild speichern und den vorherigen Comic suchen

Vorschläge für ähnliche Programme

Den Browser mit dem Modul selenium steuern

Einen seleniumgesteuerten Browser starten

Elemente auf der Seite finden

Auf Elemente klicken

Formulare ausfüllen und absenden

Die Betätigung von Sondertasten simulieren

Auf Browserschaltflächen klicken

Weitere Informationen über Selenium

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

E-Mail-Programm für die Befehlszeile

Downloadprogramm für Fotowebsites

2048

Linküberprüfung

13Excel-Arbeitsblätter

Excel-Dokumente

Das Modul openpyxl installieren

Excel-Dokumente lesen

Excel-Dokumente mit OpenPyXL öffnen

Arbeitsblätter aus der Arbeitsmappe abrufen

Zellen eines Arbeitsblatts abrufen

Umrechnen zwischen Kennbuchstaben und Nummern

Zeilen und Spalten eines Arbeitsblatts abrufen

Arbeitsmappen, Arbeitsblätter und Zellen

Projekt: Daten in einer Arbeitsmappe lesen

Schritt 1: Die Daten der Arbeitsmappe lesen

Schritt 2: Die Datenstruktur füllen

Schritt 3: Die Ergebnisse in eine Datei schreiben

Vorschläge für ähnliche Programme

Excel-Dokumente schreiben

Excel-Dokumente erstellen und speichern

Arbeitsblätter erstellen und entfernen

Werte in Zellen schreiben

Projekt: Ein Arbeitsblatt aktualisieren

Schritt 1: Eine Datenstruktur mit den neuen Informationen einrichten

Schritt 2: Alle Zeilen prüfen und die falschen Preise korrigieren

Vorschläge für ähnliche Programme

Die Schrift in den Zellen gestalten

Font-Objekte

Formeln

Das Erscheinungsbild von Zeilen und Spalten festlegen

Zeilenhöhe und Spaltenbreite festlegen

Zellen verbinden und aufteilen

Bereiche fixieren

Diagramme

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Multiplikationstabellen erstellen

Leere Zeilen einfügen

Zellen transponieren

Textdateien in Arbeitsblätter umwandeln

Arbeitsblätter in Textdateien umwandeln

14Google Tabellen

EZSheets installieren und einrichten

Anmeldeinformationen und Tokendateien beziehen

Die Datei mit den Anmeldeinformationen widerrufen

Spreadsheet-Objekte

Tabellen erstellen, hochladen und auflisten

Tabellenattribute

Tabellen hoch- und herunterladen

Tabellen löschen

Sheet-Objekte

Daten lesen und schreiben

Tabellenblätter erstellen und löschen

Tabellenblätter kopieren

Grenzwerte für Google Tabellen

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Daten von Google Formulare herunterladen

Tabellen in andere Formate umwandeln

Fehler in einer Tabelle finden

15PDF- und Word-Dokumente

PDF-Dokumente

Text aus PDFs entnehmen

PDFs entschlüsseln

PDFs erstellen

Projekt: Ausgewählte Seiten aus mehreren PDFs kombinieren

Schritt 1: Alle PDF-Dateien finden

Schritt 2: Die einzelnen PDFs öffnen

Schritt 3: Die einzelnen Seiten hinzufügen

Schritt 4: Die Ergebnisse speichern

Vorschläge für ähnliche Programme

Word-Dokumente

Word-Dokumente lesen

Den kompletten Text einer .docx-Datei abrufen

Absätze und Run-Objekte formatieren

Word-Dokumente mit anderen als den Standardformaten erstellen

Run-Attribute

Word-Dokumente schreiben

Überschriften hinzufügen

Zeilenwechsel und Seitenumbrüche hinzufügen

Bilder einfügen

PDF-Dateien aus Word-Dokumenten erstellen

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

PDF-Paranoia

Personalisierte Einladungen als Word-Dokument

Brute-Force-Passwortknacker für PDFs

16CSV-Dateien und JSON-Daten

Das Modul csv

Reader-Objekte

Daten in einer for-Schleife aus reader-Objekten lesen

Writer-Objekte

Die Schlüsselwortargumente delimiter und lineterminator

DictReader- und DictWriter-Objekte

Projekt: Kopfzeilen aus CSV-Dateien entfernen

Schritt 1: Alle CSV-Dateien durchlaufen

Schritt 2: Die CSV-Datei lesen

Schritt 3: Die CSV-Datei ohne die erste Zeile schreiben

Vorschläge für ähnliche Programme

JSON und APIs

Das Modul json

JSON-Daten mit der Funktion loads() laden

JSON-Daten mit der Funktion dumps() schreiben

Projekt: Die aktuellen Wetterdaten abrufen

Schritt 1: Den Standort aus dem Befehlszeilenargument entnehmen

Schritt 2: Die JSON-Daten herunterladen

Schritt 3: JSON-Daten laden und die Wettervorhersage ausgeben

Vorschläge für ähnliche Programme

Zusammenfassung

Wiederholungsfragen

Übungsprojekt

Excel-in-CSV-Konverter

17Zeit und Aufgabenplanung

Das Modul time

Die Funktion time.time()

Die Funktion time.sleep()

Zahlen runden

Projekt: Superstoppuhr

Schritt 1: Das Programm auf die Zeitmessung vorbereiten

Schritt 2: Intervalldauern messen und anzeigen

Vorschläge für ähnliche Programme

Das Modul datetime

Der Datentyp timedelta

Anhalten bis zu einem bestimmten Zeitpunkt

datetime-Objekte in Strings umwandeln

Strings in datetime-Objekte umwandeln

Die Zeitfunktionen von Python im Überblick

Multithreading

Argumente an die Zielfunktion eines Threads übergeben

Probleme der Nebenläufigkeit

Projekt: Multithread-Version des XKCD-Downloadprogramms

Schritt 1: Eine Funktion für den Download verwenden

Schritt 2: Threads erstellen und starten

Schritt 3: Auf das Ende aller Threads warten

Andere Programme von Python aus starten

Befehlszeilenargumente an Popen() übergeben

Taskplaner, launchd und cron

Websites mit Python aufrufen

Andere Python-Skripte ausführen

Dateien in ihren Standardanwendungen öffnen

Projekt: Ein einfaches Countdown-Programm

Schritt 1: Der Countdown

Schritt 2: Die Klangdatei abspielen

Vorschläge für ähnliche Programme

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Elegantere Stoppuhr

Webcomic-Downloadprogramm mit Zeitplanung

18E-Mails und Textnachrichten

E-Mails mit der Gmail-API senden und empfangen

Die Gmail-API aktivieren

E-Mails von einem Gmail-Konto senden

E-Mails in einem Gmail-Konto lesen

E-Mails in einem Gmail-Konto suchen

Anhänge von einem Gmail-Konto herunterladen

SMTP

E-Mails senden

Verbindung mit einem SMTP-Server aufnehmen

Die »Hallo«-Nachricht an den SMTP-Server senden

Die TLS-Verschlüsselung einleiten

Am SMTP-Server anmelden

Eine E-Mail senden

Die Verbindung zum SMTP-Server trennen

IMAP

E-Mails mit IMAP abrufen und löschen

Verbindung mit einem IMAP-Server aufnehmen

Am IMAP-Server anmelden

Nach E-Mails suchen

E-Mails abrufen und als gelesen markieren

E-Mail-Adressen aus einer Rohnachricht gewinnen

Den Rumpf aus einer Rohnachricht gewinnen

E-Mails löschen

Die Verbindung zum IMAP-Server trennen

Projekt: E-Mails über ausstehende Mitgliedsbeiträge senden

Schritt 1: Die Excel-Datei öffnen

Schritt 2: Alle säumigen Mitglieder finden

Schritt 3: Personalisierte E-Mail-Mahnungen senden

Textnachrichten über SMS-E-Mail-Gateways senden

Textnachrichten mit Twilio senden

Ein Twilio-Konto einrichten

Textnachrichten senden

Projekt: Das Modul »Just Text Me«

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Zufällige Zuweisung von Arbeiten

Regenschirmhinweis

Automatischer Entregistrierer

Den Computer per E-Mail steuern

19Bildbearbeitung

Grundlagen zur Bilddarstellung auf Computern

Farben und RGBA-Werte

Koordinaten und Rechtecktupel

Bildbearbeitung mit Pillow

Mit dem Datentyp Image arbeiten

Bilder beschneiden

Bilder kopieren und in andere Bilder einfügen

Die Bildgröße ändern

Bilder drehen und spiegeln

Einzelne Pixel ändern

Projekt: Ein Logo hinzufügen

Schritt 1: Das Logobild öffnen

Schritt 2: Alle Dateien durchlaufen und die Bilder öffnen

Schritt 3: Die Bildgröße ändern

Schritt 4: Logo hinzufügen und Änderungen speichern

Vorschläge für ähnliche Programme

Bilder zeichnen

Formen zeichnen

Text zeichnen

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Das Logoprogramm erweitern und verbessern

Fotoordner auf der Festplatte finden

Personalisierte Tischkarten

20GUI-Automatisierung

Das Modul PyAutoGUI installieren

Zugriff auf macOS erlauben

Kleine Probleme beheben

Die PyAutoGUI-Notfallsicherung

Beenden durch Abmelden

Den Mauszeiger steuern

Den Mauszeiger bewegen

Die Position des Mauszeigers abrufen

Mausinteraktionen

Klicken

Ziehen

Scrollen

Mausbewegungen planen

Auf dem Bildschirm arbeiten

Einen Screenshot aufnehmen

Einen Screenshot analysieren

Bilderkennung

Informationen über das Fenster abrufen

Das aktive Fenster abrufen

Andere Möglichkeiten zum Abrufen von Fenstern

Fenster bearbeiten

Die Tastatur steuern

Strings von der Tastatur senden

Tastennamen

Tasten drücken und loslassen

Tastenkombinationen

GUI-Automatisierungsskripte einrichten

Übersicht über die Funktionen von PyAutoGUI

Projekt: Formulare automatisch ausfüllen

Schritt 1: Den Ablauf herausfinden

Schritt 2: Die Koordinaten ermitteln

Schritt 3: Daten eingeben

Schritt 4: Auswahllisten und Optionsschalter

Schritt 5: Das Formular absenden und warten

Dialogfelder anzeigen

Zusammenfassung

Wiederholungsfragen

Übungsprojekte

Beschäftigung vortäuschen

Textfelder über Zwischenablage lesen

Instant-Messenger-Bot

Tutorial für einen Spiele-Bot

Anhang

 

A Drittanbietermodule installieren

Pip

Drittanbietermodule installieren

Module für Mu installieren

B Programme ausführen

Programme im Terminalfenster ausführen

Python-Programme unter Windows ausführen

Python-Programme unter macOS ausführen

Programme unter Ubuntu Linux ausführen

Python-Programme mit ausgeschalteten Zusicherungen ausführen

C Antworten auf die Wiederholungsfragen

Kapitel 1

Kapitel 2

Kapitel 3

Kapitel 4

Kapitel 5

Kapitel 6

Kapitel 7

Kapitel 8

Kapitel 9

Kapitel 10

Kapitel 11

Kapitel 12

Kapitel 13

Kapitel 14

Kapitel 15

Kapitel 16

Kapitel 17

Kapitel 18

Kapitel 19

Kapitel 20

Stichwortverzeichnis

Für meinen Neffen Jack

Der Autor

Al Sweigart ist Softwareentwickler und Fachbuchautor. Seine Lieblingsprogrammiersprache ist Python und er hat bereits mehrere Open-Source-Module dafür entwickelt. Seine anderen Bücher sind auf seiner Website http://www.inventwithpython.com/ unter einer Creative-Commons-Lizenz kostenlos erhältlich. Seine Katze wiegt 11 Pfund.

Der Fachgutachter

Philip James arbeitet schon mehr als zehn Jahre mit Python und tritt in der Python-Community häufig als Redner zu unterschiedlichen Themen von Unix-Grundlagen bis zu Social Media auf Open-Source-Basis auf. Er ist einer der Hauptbeteiligten am BeeWare-Projekt und lebt mit seiner Partnerin Nic und deren Katze River in der Bay Area von San Francisco.

Danksagung

Es ist irreführend, dass nur mein Name auf dem Umschlag steht, denn um dieses Buch schreiben zu können, habe ich die Hilfe vieler Menschen benötigt. Ich möchte meinem Herausgeber Bill Pollock, meinen Lektoren Laurel Chun, Leslie Shen, Greg Poulos, Jennifer Griffith-Delgado und Frances Saux sowie allen anderen Mitarbeitern bei No Starch Press für ihre unschätzbare Hilfe danken. Ein Dank geht auch an meine Fachgutachter Ari Lacenski und Philip James für ihre hervorragenden Vorschläge und Verbesserungen sowie für ihre Unterstützung.

Vielen Dank auch allen Mitgliedern der Python Software Foundation für ihre großartige Arbeit. Die Python-Community ist die beste, die ich in der IT-Branche gefunden habe.

Schließlich möchte ich noch meiner Familie, meinen Freunden und der Clique bei Shotwell’s danken, weil sie es mir nicht übel genommen haben, dass ich während des Schreibens an diesem Buch dauernd beschäftigt war. Dankeschön!

Einleitung

image »Du hast gerade in zwei Stunden das erledigt, woran wir drei sonst zwei Tage lang sitzen!«

Mein Mitbewohner in den frühen 2000er-Jahren arbeitete bei einem Elektronikhändler, bei dem gelegentlich eine Tabelle mit Tausenden von Produktpreisen anderer Läden auftauchte. Drei Mitarbeiter druckten diese Tabelle dann auf einem dicken Stapel Papier aus und teilten diesen unter sich auf. Für jeden Produktpreis schlugen sie den Preis ihres eigenen Arbeitgebers nach und notierten alle Produkte, die die Konkurrenz billiger anbot. Damit waren sie gewöhnlich zwei Tage beschäftigt.

»Wenn ich die Originaldatei bekomme, kann ich ein Programm schreiben, das die Arbeit für euch erledigt«, schlug mein Mitbewohner ihnen vor, als er sah, wie sie inmitten eines Riesenhaufens Papier auf dem Fußboden hockten.

Nach ein paar Stunden hatte er ein kurzes Programm geschrieben, das die Preisliste der Konkurrenten aus der Datei auslas, die Produkte in der Datenbank des Elektronikladens nachschlug und einen Vermerk machte, wenn die Konkurrenz billiger war. Er war immer noch ein Anfänger in Sachen Programmierung und hatte den Großteil dieser Stunden damit zugebracht, die Dokumentation in einem Programmierbuch nachzuschlagen. Die Ausführung des fertigen Programms dauerte nur wenige Sekunden. An dem Tag gönnten sich mein Mitbewohner und seine Kollegen eine besonders lange Mittagspause.

Das zeigt das Potenzial der Programmierung. Ein Computer ist wie ein Schweizer Messer und lässt sich für zahllose Aufgaben einrichten. Viele Leute bringen Stunden mit Klicken und Tippen zu, um monotone Aufgaben auszuführen, ohne zu ahnen, dass der Computer diese Arbeit in wenigen Sekunden erledigen könnte, wenn er nur die richtigen Anweisungen dafür bekäme.

Für wen ist dieses Buch gedacht?

Software bildet die Grundlage vieler unserer Geräte, die wir für die Arbeit und in der Freizeit verwenden: Fast jeder nutzt soziale Netzwerke zur Kommunikation, die Telefone vieler Menschen enthalten Computer mit Internetzugriff und für die meisten Büroarbeiten ist Computerarbeit erforderlich. Daher ist die Nachfrage nach Personen, die programmieren können, sprunghaft angestiegen. Unzählige Bücher, interaktive Webtutorials und Schulungen für Entwickler werden mit dem Versprechen beworben, ehrgeizige Anfänger zu Softwareingenieuren zu machen, die sechsstellige Gehälter verlangen können.

Dieses Buch ist jedoch nicht für diese Leute gedacht, sondern für alle anderen.

Mit diesem Buch allein können Sie nicht zu einem professionellen Softwareentwickler werden, genauso wenig, wie ein paar Gitarrenstunden Sie zu einem Rockstar machen. Wenn Sie aber Büroangestellter, Administrator oder Akademiker sind oder auch nur zur Arbeit oder zum Vergnügen einen Computer benutzen, so werden Sie hier die Grundlagen der Programmierung kennenlernen, um einfache Aufgaben wie die folgenden zu automatisieren: