Kurs
PDF-Dokumente
PDF steht für Portable Document Format und kann Texte, Bilder, Diagramme usw. enthalten – anders als reine Textdateien. Es handelt sich um Dateien mit der Endung ".pdf", entwickelt von Adobe. Dieser Dateityp ist unabhängig von Plattformen wie Software, Hardware und Betriebssystemen.
Schritte zur Paketinstallation:
-
Installiere das Paket "pypdf2", das mit Dateien der Endung ".pdf" umgehen kann.

-
Nach der Installation wird das Paket "pypdf2" wie unten angezeigt.

PDFs lesen und Daten extrahieren
Mit PyPDF2 kannst du ausschließlich Text aus einer PDF extrahieren; für Rich-Media-Inhalte gibt es Einschränkungen. Logos, Bilder usw. lassen sich damit nicht auslesen. Lade für dieses Tutorial die folgende PDF herunter.
PDF-Datei herunterladen

Die Import-Anweisung oben lädt das Modul PyPDF2. Verwende dann 'open('pdfDateiname', 'öffnungsModus')' – hier ist der 'pdfDateiname' 'test.pdf' und der 'öffnungsModus' 'rb' für reines Lesen im Binärformat.

PyPDF2 stellt die Klasse 'PdfFileReader' bereit, die das neu erstellte Objekt 'pdfFileObject' entgegennimmt. Über das Attribut 'numPages' von 'pdfFileObject' erhältst du die Gesamtzahl der Seiten.
Die Ausgabe oben ist 1, da die PDF nur eine Seite umfasst.
Mit 'getPage(0)' am 'pdfReaderObject' holst du die erste Seite. Das Ergebnis wird in 'firstPageObject' gespeichert; den gesamten Text dieser Seite gibst du mit 'extractText()' aus.
Der Code oben gibt den gesamten Text der PDF aus. Bilder erscheinen in der Konsole nicht – sie lassen sich mit PyPDF2 nicht extrahieren.
Mehrere PDFs zu einer PDF zusammenfügen
Du fügst zwei verschiedene PDFs zu einer einzigen Datei zusammen. Die eine ist die bereits verwendete PDF, die andere kannst du hier herunterladen:
Neue PDF-Datei.

Importiere das Modul 'PdfFileMerger' aus dem Paket PyPDF2, um PDFs zusammenzuführen. Lege den 'path' zum Ordner mit den Dateien fest und liste die zusammenzuführenden PDFs in 'pdf_files' auf.
Hier wird ein Merger-Objekt mit 'PdfFileMerger' erstellt. In einer Schleife fügst du jede Datei per 'append' unter Angabe von Pfad und Dateinamen hinzu. Abschließend erzeugt 'merger.write()' die neue, zusammengeführte PDF-Datei.
Das Bild zeigt 'merged.pdf' mit den zusammengeführten Inhalten aus 'test.pdf' und 'test-1.pdf'.
Word-Dokumente
Word-Dokumente enden auf ".docx". Sie enthalten nicht nur reinen Text, sondern sind Rich-Text-Dokumente mit Struktur- und Formatangaben wie Größe, Ausrichtung, Farbe, Bilder und Schriftarten.
Zum Arbeiten mit Word-Dokumenten brauchst du eine Anwendung. Auf Windows und macOS ist Microsoft Word verbreitet, allerdings im Abonnement. Eine kostenlose Alternative ist "LibreOffice" (unter Linux oft vorinstalliert). Die Anwendungen kannst du für Windows und macOS herunterladen. In diesem Tutorial verwenden wir Microsoft Word unter Windows.
Schritte zur Paketinstallation
-
Installiere das Paket "python-docx", um Word-Dokumente mit der Endung ".docx" zu verarbeiten.

-
Nach der Installation wird das Paket "python-docx" wie unten angezeigt.

Du kannst im interaktiven Python-Shell mitcoden, empfehlenswert ist jedoch ein Texteditor. Für dieses Tutorial nutzen wir Sublime Text.
Ein Word-Dokument schreiben

Oben siehst du, dass das Modul 'Document' aus dem Paket 'docx' importiert wird. In der zweiten Zeile erstellt der Document-Objektaufruf ein neues Word-Dokument. Mit 'document.save()' wird es unter 'first.docx' gespeichert.
Eine Überschrift hinzufügen

'Document()' öffnet eine neue Datei, und mit 'document.save('addHeader.docx')' speicherst du die bearbeitete Datei. Überschriften fügst du per 'add_heading('text', level=zahl)' hinzu. Der Level reicht von 0 bis 4.

Das Ergebnis ist 'addedHeader.docx'. Level 0 erzeugt eine Überschrift mit horizontaler Linie darunter, Level 1 ist die Hauptüberschrift. Die weiteren Level sind Zwischenüberschriften mit abnehmender Schriftgröße.
Einen Absatz hinzufügen

'Document()' öffnet eine neue Datei, und mit 'document.save('addParagraph.docx')' speicherst du die bearbeitete Datei. Absätze fügst du mit 'add_paragraph('text', style='erforderlicher_style')' hinzu. Das Argument 'style' ist optional; nutzbar sind z. B. 'List Number' und 'List Bullet'.

Das Ergebnis ist 'addedParagraph.docx': zuerst ein einfacher Absatz, dann eine Überschrift und darunter eine geordnete Liste mit den Punkten 1 und 2. Darunter folgt eine weitere Überschrift und eine ungeordnete Liste mit zwei Aufzählungspunkten.
Ein Bild einfügen

'Document()' erstellt eine neue Datei, und mit 'document.save('addPicture.docx')' speicherst du die bearbeitete Datei. Ein Bild fügst du mit 'add_picture()' ein. Der erste Parameter ist der Pfad zur Bilddatei, hier 'cat-1.jpeg'. Breite und Höhe sind optionale Parameter; standardmäßig 72 dpi. Für dieses Beispiel verwenden wir 'Inches'.

Das Ergebnis ist 'addedPicture.docx' mit einem Katzenbild, dessen Breite und Höhe jeweils 1,25 Inches betragen.
Ein Word-Dokument lesen
Jetzt liest du ein Beispiel-Word-Dokument aus Python. Du findest es hier:
Beispiel herunterladen.

In der ersten Zeile importierst du 'Document' aus dem Modul 'docx' und übergibst die benötigte Datei, um ein Objekt zu erstellen. 'obtainText' ist eine Funktion, die die Datei 'fullText.docx' entgegennimmt. Für jeden Absatz – zugänglich über 'document.paragraphs' – wird der Text per 'append' in eine leere Liste eingefügt. Am Ende gibt die Funktion eine Liste der Absätze zurück, jeweils mit Zeilenumbruch.

Die Ausgabe ist reiner Text ohne Stil, Farbe usw. – also kein Rich-Text.
Glückwunsch
Glückwunsch, du hast dieses Tutorial abgeschlossen.
Wenn du mehr über das Importieren von Daten in Python lernen willst, probiere den DataCamp-Kurs Introduction to Importing Data in Python aus.
Sieh dir auch unser Python Data Structures Tutorial an.
Weitere Ressourcen, die dein Wissen zu speziellen Themen vertiefen:
Referenzen:
Automate Boring Stuff With Python: Working with Word Documents