Weiter zum Inhalt

PDFs und Word-Dokumente mit Python lesen und bearbeiten

Dieses Tutorial zeigt dir, wie du PDF-Dokumente liest und mehrere PDFs zu einer Datei zusammenführst. Außerdem lernst du, Word-Dokumente in Python zu lesen und zu schreiben.
Aktualisiert 18. Sept. 2026  · 8 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

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:

  1. Installiere das Paket "pypdf2", das mit Dateien der Endung ".pdf" umgehen kann. install package 1

  2. Nach der Installation wird das Paket "pypdf2" wie unten angezeigt. install package 2

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

import pdf

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.

open pdf

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.

total number of pages Die Ausgabe oben ist 1, da die PDF nur eine Seite umfasst.

first page 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.

all text 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.

new pdf

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.

merger object 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.

merged pdf 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

  1. Installiere das Paket "python-docx", um Word-Dokumente mit der Endung ".docx" zu verarbeiten. python-docx package

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

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

Ein Word-Dokument schreiben

document module imported

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

add heading

'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.

heading levels

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

add a paragraph

'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'.

newly created file

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

add a picture

'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'.

added picture

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.

reading word document

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.

plain text

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:

  1. Dokumentation zu python-docx
  2. Dokumentation zu PyPDF2

Referenzen:
Automate Boring Stuff With Python: Working with Word Documents

Themen
Python

Mehr über Python lernen

Kurs

Einführung in das Importieren von Daten in Python

3 Std.
340.9K
Lerne in diesem Kurs, wie du Daten aus diversen Quellen wie Excel, SQL, SAS oder direkt aus dem Internet in Python importierst.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow