Ottieni l'estensione del file in Python

Rayven Esplanada 30 gennaio 2023
  1. Usa il modulo os.path per estrarre l’estensione dal file in Python
  2. Usa il modulo pathlib per estrarre l’estensione dal file in Python
Ottieni l'estensione del file in Python

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.

Rayven Esplanada avatar Rayven Esplanada avatar

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

Articolo correlato - Python File