Vai al contenuto principale

Lettura e modifica di PDF e documenti Word da Python

Questo tutorial ti permetterà di leggere documenti PDF e unire più file PDF in un unico file. Mostrerà anche come leggere e scrivere documenti Word da Python.
Aggiornato 29 set 2026  · 8 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Documenti PDF

PDF è un formato di documento portatile che può contenere testi, immagini, grafici, ecc., ed è diverso dai file di testo semplice. È un file con estensione '.pdf' ed è stato inventato da Adobe. Questo tipo di file è indipendente da qualsiasi piattaforma, come software, hardware e sistemi operativi.

Passaggi per installare il pacchetto:

  1. Devi installare un pacchetto chiamato "pypdf2" che può gestire i file con estensione '.pdf'. install package 1

  2. Puoi vedere che il pacchetto 'pypdf2' è installato, come mostrato qui sotto. install package 2

Lettura di documenti PDF ed estrazione dei dati

Estrarrai solo il testo dal file PDF, perché PyPDF2 ha dei limiti nell'estrazione di contenuti multimediali. Loghi, immagini, ecc. non possono essere estratti — per seguire questo tutorial devi scaricare il seguente file PDF.
Scarica il file PDF

import pdf

L'istruzione 'import' nel codice sopra importa il modulo PyPDF2. Devi usare 'open('pdfFileName' , 'openingMode')' dove 'pdfFilename' è 'test.pdf' e 'openingMode' è 'rb', cioè sola lettura in formato binario.

open pdf

PyPDF2 ha un metodo chiamato 'PdfFileReader', che prende in input il nuovo oggetto 'pdfFileObject'. Ora puoi accedere all'attributo 'numPages' di 'pdfFileObject', che restituisce il numero totale di pagine.

total number of pages L'output sopra è 1. Infatti, come puoi vedere, il file PDF è composto da una sola pagina.

first page Puoi usare il metodo 'getPage(0)' sull'oggetto pdfReaderObject per ottenere la prima pagina. Il risultato viene quindi memorizzato in 'firstPageObject', dal quale tutto il testo di quella pagina può essere stampato usando il metodo 'extractText()'.

all text Il codice sopra restituisce tutto il testo dal file PDF. Tuttavia, l'immagine non viene mostrata nel terminale, perché non può essere ottenuta con pyPDF2.

Unire più file PDF in un unico PDF

Unirai due file PDF diversi in un unico file PDF. Il vecchio file PDF è quello su cui hai già lavorato, mentre un nuovo file PDF può essere scaricato dal seguente link:
Nuovo file PDF.

new pdf

Importerai il modulo PdfFileMerger dal pacchetto PyPDF2, che aiuta a unire i file PDF. Viene specificato il 'path', che indica il percorso della cartella in cui si trova il file. Inoltre, i file PDF da unire sono inclusi in 'pdf_files' in un elenco.

merger object Puoi vedere che l'oggetto merger viene creato con l'aiuto di 'PdfFileMerger'. Si esegue un ciclo su ciascun file della lista, unendo i file passando percorso e nome file al metodo 'append'. Infine, si ottiene il risultato finale usando 'merger.write()', che genera un nuovo PDF con il contenuto unito.

merged pdf L'immagine sopra mostra 'merged.pdf', che contiene il contenuto unito di 'test.pdf' e 'test-1.pdf'.

Documenti Word

I documenti Word hanno l'estensione ".docx" alla fine del nome file. Questi documenti non contengono solo testo come i file di testo semplice, ma sono documenti con formattazione avanzata. Un documento rich text include diverse strutture con dimensioni, allineamenti, colori, immagini, font, ecc. associati.

Ti serve un'applicazione per lavorare con i documenti Word. L'applicazione più diffusa per i sistemi operativi Windows e Mac è Microsoft Word, ma richiede un abbonamento a pagamento. Tuttavia, esiste un'alternativa gratuita come "LibreOffice", un'applicazione per Linux fornita preinstallata. Le applicazioni possono essere scaricate per i sistemi operativi Windows e Mac. In questo tutorial useremo Microsoft Word su Windows.

Passaggi per installare il pacchetto

  1. Devi installare un pacchetto chiamato "python-docx" che può gestire i documenti Word con estensione '.docx'. python-docx package

  2. Puoi vedere il pacchetto 'python-docx' installato, come mostrato di seguito. installed package

Puoi scrivere il codice nella shell interattiva fornita da Python, ma è preferibile usare un editor di testo. Per la parte di codice di questo tutorial useremo Sublime Text.

Scrivere un documento Word

document module imported

Come vedi sopra, nel primo rigo viene importato il modulo 'document' dal pacchetto 'docx'. Il codice nella seconda riga crea un nuovo documento Word tramite l'oggetto Document. Il file viene salvato come 'first.docx' usando 'document.save()'.

Aggiungere un'intestazione

add heading

Il codice sopra contiene 'Document()' per aprire un nuovo file e 'document.save('addHeader.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere un'intestazione con il metodo 'add_heading('text,' level=number)', che prende il testo dell'intestazione e il livello, che va da 0 a 4.

heading levels

Il codice sopra produce come output un nuovo file 'addedHeader.docx' in cui il livello 0 crea un titolo con una linea orizzontale sotto il testo, mentre il livello di intestazione 1 è l'intestazione principale. Allo stesso modo, gli altri livelli sono sottotitoli con dimensioni del carattere via via decrescenti.

Aggiungere un paragrafo

add a paragraph

Il codice sopra contiene 'Document()' che apre un nuovo file documento e 'document.save('addParagraph.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere il paragrafo con il metodo 'add_paragraph('text,' style='required_style')' che accetta il testo e uno 'style' opzionale, per esempio 'List Number' e 'List Bullet'.

newly created file

Il codice sopra produce come output un nuovo file 'addedParagraph.docx' in cui c'è un semplice paragrafo nella prima riga. Quindi c'è un'intestazione e sotto un elenco ordinato contenente gli elementi 1 e 2. Di seguito c'è un'altra intestazione con due elementi in un elenco puntato non ordinato.

Aggiungere un'immagine

add a picture

Il codice sopra contiene 'Document()', che crea un nuovo file documento, e 'document.save('addPicture.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere un'immagine usando 'add_picture()', il cui primo parametro 'cat-1.jpeg' è il percorso dell'immagine del gatto. Larghezza e altezza sono parametri opzionali che di default sono '72 dp', ma qui abbiamo usato 'Inches' per il nostro scopo.

added picture

Il codice sopra produce come output un nuovo file 'addedPicture.docx', che contiene un'immagine di un gatto con larghezza e altezza pari a 1,25 pollici.

Leggere un documento Word

Ora leggerai un documento Word di esempio da Python, disponibile qui:
Scarica l'esempio.

reading word document

La prima riga del codice importa Document dal modulo 'docx', usato per passare il file richiesto e creare un oggetto. 'obtainText' è una funzione che riceve il file 'fullText.docx'. Si esegue un ciclo per ogni paragrafo, accessibile con 'document.paragraphs', e lo si inserisce in una lista vuota usando il metodo 'append'. Infine, la funzione restituisce un elenco di paragrafi separati da una nuova riga.

plain text

L'output sopra mostra il testo semplice, senza stile, colore, ecc., quindi non è un documento con formattazione avanzata.

Congratulazioni

Congratulazioni, hai finito di leggere questo tutorial.

Se vuoi saperne di più sull'importazione dei dati in Python, prova il corso Introduction to Importing Data in Python di DataCamp.

Dai un'occhiata al nostro tutorial sulle strutture dati in Python.

Puoi anche consultare le seguenti risorse per ampliare le tue conoscenze su argomenti specifici.

  1. Documentazione di Python Docx
  2. Documentazione di PyPDF2

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

Argomenti
Python

Scopri di più su Python

Corso

Introduzione all'importazione dei dati in Python

3 ore
342.1K
Impara a importare dati in Python da un sacco di posti, tipo Excel, SQL, SAS e direttamente dal web.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro