Scopo | |
Versione Python |
A partire dal 1 gennaio 2021 le versioni 2.x di Python non sono piu' supportate. Ti invito a consultare la corrispondente versione 3.x dell'articolo per le versioni 3.x di Python
La classe string è il più ovvio strumento per l'elaborazione del testo disponibile ai programmatori Python, ma vi è abbondanza di altri strumenti nella libreria standard per facilitare la manipolazione del testo.
Codice "vecchia maniera" utilizzerà le funzioni dal modulo string , al posto dei metodi degli oggetti stringa. Esiste un equivalente metodo per ogni funzione del modulo, e l'uso delle funzioni è deprecato per nuovo codice.
Codice più nuovo potrebbe usare
string.Template
come semplice modo per parametrizzare le stringhe al di là delle caratteristiche delle classi
string
oppure
unicode
. Sebbene non ricco di caratteristiche al pari dei framework web o dei moduli di estensione disponibili in PyPI,
string.Template
è un buon compromesso per template modificabili dall'utente dove i valori dinamici devono essere inseriti in blocchi di testo statico.
Leggere da un file è sufficientemente facile, ma se si sta scrivendo un filtro riga-per-riga con il modulo
fileinput
è ancora più facile. Le API di
fileinput
eseguono le chiamate per iterare sul generatore
input()
, elaborando ogni riga non appena letta. Il generatore gestisce l'elaborazione degli argomenti da riga di comando per i nomi di file oppure recede per leggere direttamente da
sys.stdin
. Il risultato è uno strumento flessibile che può essere eseguito direttamente su di un file o come parte di una
pipeline
Il modulo textwrap comprende strumenti per la formattazione del testo da paragrafi limitando la larghezza dell'output, aggiungendo indentazione, ed inserendo interruzioni di riga per separare le righe in modo consistente.
La libreria standard comprende due moduli dedicati al confronto di valori di testo al di là delle funzionalità built-in di confronto per eguaglianza ed ordinamento supportate dagli oggetti stringa. re fornisce una libreria di espressioni regolari completa, per la gran parte implementata in C per le prestazioni. Le espressioni regolari sono adatte per trovare sottostringhe all'interno di un più vasto insieme di dati, per confrontare stringhe rispetto ad un modello (oppure rispetto ad un'altra stringa fissa), ed una moderata elaborazione.
difflib , d'altro canto, mostra le effettive differenze tra sequenze di testo in relazione alle parti aggiunte, rimosse o modificate. L'output delle funzioni di comparazione in difflib può essere usato per fornire feedback più dettagliato all'utente sul dove si sono verificati cambiamenti nei due input, sul come un documento sia stato modificato nel tempo ecc.