Obtenir l'extension de fichier en Python

Rayven Esplanada 30 janvier 2023
  1. Utilisez le module os.path pour extraire l’extension d’un fichier en Python
  2. Utilisez le module pathlib pour extraire l’extension du fichier en Python
Obtenir l'extension de fichier en Python

Ce tutoriel présente la façon d’obtenir l’extension de fichier à partir du nom de fichier en Python.

Utilisez le module os.path pour extraire l’extension d’un fichier en Python

Python a un module os.path qui a fait des fonctions utilitaires utiles pour manipuler les chemins de fichiers du système d’exploitation. Cela inclut l’ouverture, l’enregistrement et la mise à jour, ainsi que l’obtention d’informations à partir des chemins de fichiers.

Nous utiliserons ce module pour obtenir l’extension de fichier en Python.

Le fichier os.path a une fonction splitext() pour séparer la racine et l’extension du chemin de fichier donné. La fonction retourne un tuple contenant la chaîne de la racine et la chaîne de l’extension.

Fournissons un exemple de chemin de fichier avec une extension docx.

/Users/user/Documents/sampledoc.docx

Le résultat attendu devrait être l’extension .docx.

Déclarez deux variables séparées pour capturer le résultat de splitext() nommées extension et root.

import os

path = "/Users/user/Documents/sampledoc.docx"
root, extension = os.path.splitext(path)

print("Root:", root)
print("extension:", extension)

Production :

Root: /Users/user/Documents/sampledoc
Extension: .docx

L’extension a maintenant été retournée avec succès ted depuis le chemin du fichier racine.

Utilisez le module pathlib pour extraire l’extension du fichier en Python

pathlib est un module Python qui contient des classes représentant des chemins de fichiers et implémente des fonctions utilitaires et des constantes pour ces classes.

pathlib.Path() accepte une chaîne de chemin comme argument et retourne un nouvel objet Path.

L’objet pathlib.Path a l’attribut suffix qui retourne les informations sur l’extension du fichier.

import pathlib

path = pathlib.Path("/Users/user/Documents/sampledoc.docx")

print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", path.suffix)

Outre la racine, nous pouvons également obtenir le chemin du fichier parent et le nom du fichier réel du chemin donné en appelant simplement les attributs parent et name dans l’objet Path.

Production :

Parent: /Users/user/Documents
Filename: sampledoc.docx
Extension: .docx

Que faire si nous avons une extension de fichier comme .tar.gz ou .tar.bz2 ?

L’objet pathlib fournit également un attribut pour les fichiers ayant plusieurs suffixes comme extensions. L’attribut suffixes dans l’objet Path est une liste contenant tous les suffixes du fichier donné. Si nous utilisons l’exemple ci-dessus et que nous imprimons l’attribut suffixes :

import pathlib

path = pathlib.Path("/Users/user/Documents/sampledoc.docx")

print("Suffix(es):", path.suffixes)

Production :

Suffix(es): ['.docx']

Ainsi, même s’il n’y a qu’un seul suffixe, la sortie se traduira par une liste simple.

Essayez maintenant un exemple avec une extension .tar.gz. Pour convertir la liste en une seule chaîne de caractères, la fonction join() peut être utilisée sur une chaîne vide et accepter l’attribut suffixes comme argument.

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))

Production :

Parent: /Users/user/Documents
Filename: app_sample.tar.gz
Extension: .tar.gz

Maintenant, l’extension réelle est affichée à la place d’une liste.

En résumé, les deux modules os et pathlib fournissent des méthodes pratiques pour obtenir l’extension d’un fichier à partir d’un chemin de fichier en Python.

Le module os a la fonction splitext pour séparer la racine et le nom de fichier de l’extension de fichier. pathlib crée un objet Path et stocke simplement l’extension dans l’attribut suffixes.

Si vous prévoyez plus d’une extension dans un fichier, il serait préférable d’utiliser pathlib car il fournit un support facile pour plusieurs extensions en utilisant l’attribut 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

Article connexe - Python File