Ottieni l'estensione del file in Python
-
Usa il modulo
os.path
per estrarre l’estensione dal file in Python -
Usa il modulo
pathlib
per estrarre l’estensione dal file in Python
![Ottieni l'estensione del file in Python](/img/Python/feature-image---python-get-file-extension.webp)
Questo tutorial introdurrà come ottenere l’estensione del file dal nome del file in Python.
Usa il modulo os.path
per estrarre l’estensione dal file in Python
Python ha un modulo os.path
che ha funzioni di utilità utili predefinite per manipolare i percorsi dei file del sistema operativo. Include l’apertura, il salvataggio e l’aggiornamento e il recupero delle informazioni dai percorsi dei file.
Useremo questo modulo per ottenere l’estensione del file in Python.
os.path
ha una funzione splitext()
per dividere la radice e l’estensione del percorso del file specificato. La funzione restituisce una tupla contenente la stringa radice e la stringa di estensione.
Forniamo un esempio di percorso di file con estensione docx
.
/Users/user/Documents/sampledoc.docx
L’output previsto dovrebbe essere l’estensione .docx
.
Dichiara due variabili separate per catturare il risultato di splitext()
denominato extension
e root
.
import os
path = "/Users/user/Documents/sampledoc.docx"
root, extension = os.path.splitext(path)
print("Root:", root)
print("extension:", extension)
Produzione:
Root: /Users/user/Documents/sampledoc
Extension: .docx
L’estensione è stata ora restituita con successo dal percorso del file principale.
Usa il modulo pathlib
per estrarre l’estensione dal file in Python
pathlib
è un modulo Python che contiene classi che rappresentano percorsi di file e implementa funzioni e costanti di utilità per queste classi.
pathlib.Path()
accetta una stringa di percorso come argomento e restituisce un nuovo oggetto Path
.
L’oggetto pathlib.Path
ha l’attributo suffix
che restituisce le informazioni sull’estensione del file.
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", path.suffix)
Oltre alla radice, possiamo anche ottenere il percorso del file genitore e il nome file effettivo del percorso file specificato semplicemente chiamando gli attributi parent
e name
all’interno dell’oggetto Path
.
Produzione:
Parent: /Users/user/Documents
Filename: sampledoc.docx
Extension: .docx
E se abbiamo un’estensione di file come .tar.gz
o .tar.bz2
?
pathlib
fornisce anche un attributo per file con più suffissi come estensioni. L’attributo suffixes
all’interno dell’oggetto Path
è una lista contenente tutti i suffissi del file dato. Se usiamo l’esempio sopra e stampiamo l’attributo suffixes
:
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Suffix(es):", path.suffixes)
Produzione:
Suffix(es): ['.docx']
Quindi, anche se è presente un solo suffisso, l’output risulterà in una lista singleton.
Ora prova un esempio con un’estensione .tar.gz
. Per convertire l’lista in una singola stringa, la funzione join()
può essere usata su una stringa vuota e accetta l’attributo suffixes
come argomento.
import pathlib
path = pathlib.Path("/Users/user/Documents/app_sample.tar.gz")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", "".join(path.suffixes))
Produzione:
Parent: /Users/user/Documents
Filename: app_sample.tar.gz
Extension: .tar.gz
Ora l’estensione effettiva viene visualizzata invece di una lista.
In sintesi, i due moduli os
e pathlib
forniscono metodi convenienti per ottenere l’estensione del file da un percorso di file in Python.
Il modulo os
ha la funzione splitext
per dividere la radice e il nome del file dall’estensione del file. pathlib
crea un oggetto Path
e memorizza semplicemente l’estensione all’interno dell’attributo suffixes
.
Se prevedi più di un’estensione in un file, sarebbe meglio usare pathlib
in quanto fornisce un facile supporto per più estensioni utilizzando l’attributo suffixes
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn