Python obtient un nom de fichier sans extension du chemin

Muhammad Waiz Khan 10 octobre 2023
  1. Obtenir le nom de fichier sans extension à partir du chemin en utilisant la méthode pathlib.path().stem en Python
  2. Obtenir le nom de fichier sans extension à partir du chemin en utilisant les méthodes os.path.splitext() et string.split() en Python
  3. Obtenir le nom de fichier à partir du chemin en utilisant les méthodes os.path.basename() et os.path.splitext() en Python
Python obtient un nom de fichier sans extension du chemin

Ce tutoriel présente différentes méthodes pour obtenir un nom de fichier sans extension à partir du chemin d’accès au fichier en Python. Supposons que le but est d’obtenir le nom des fichiers à partir de la liste des chemins de fichiers disponibles sous la forme d’une chaîne, comme dans le chemin Desktop/folder/myfile.txt, nous obtenons seulement le nom de fichier myfile sans extension .txt.

Obtenir le nom de fichier sans extension à partir du chemin en utilisant la méthode pathlib.path().stem en Python

La méthode path().stem prend le chemin du fichier en entrée et retourne le nom du fichier en l’extrayant du chemin du fichier. Par exemple, à partir du chemin Desktop/folder/myfile.txt, elle retournera myfile sans l’extension .txt.

L’exemple de code ci-dessous montre comment utiliser le path().stem pour obtenir le nom de fichier sans l’extension du chemin d’accès :

from pathlib import Path

file_path = "Desktop/folder/myfile.txt"
file_name = Path(file_path).stem
print(file_name)

Production :

myfile

Obtenir le nom de fichier sans extension à partir du chemin en utilisant les méthodes os.path.splitext() et string.split() en Python

La méthode path.splitext() du module os prend le chemin du fichier comme entrée de chaîne et renvoie le chemin et l’extension du fichier en sortie.

Comme nous voulons obtenir le nom du fichier à partir du chemin de fichier, nous pouvons d’abord supprimer l’extension du fichier du chemin de fichier en utilisant la méthode os.path.splitext(). Le premier élément du résultat du fractionnement est le chemin d’accès au fichier sans extension. Ce résultat est ensuite fractionné en utilisant / comme séparateur. Le dernier élément sera le nom du fichier sans extension. L’exemple de code ci-dessous montre comment obtenir le nom de fichier sans extension à partir du chemin d’accès au fichier en utilisant les méthodes path.splitext() et string.split().

import os

file_path = "Desktop/folder/myfile.txt"

file_path = os.path.splitext(file_path)[0]
file_name = file_path.split("/")[-1]
print(file_name)

Production :

test

Obtenir le nom de fichier à partir du chemin en utilisant les méthodes os.path.basename() et os.path.splitext() en Python

En Python, la méthode path.basename() du module os prend le chemin du fichier en entrée et retourne le nom de base extrait du chemin du fichier. Par exemple, le nom de base de Desktop/folder/myfile.txt est myfile.txt.

Comme nous voulons obtenir le nom du fichier à partir du chemin d’accès, le nom de base peut être extrait en utilisant la méthode path.basename() et le nom du fichier en utilisant path.splitext(). L’exemple de code ci-dessous montre comment obtenir le nom de fichier à partir du chemin d’accès au fichier en utilisant les méthodes path.basename() et path.splitext().

import os

file_path = "Desktop/folder/myfile.txt"

basename = os.path.basename(file_path)
file_name = os.path.splitext(basename)[0]
print(file_name)

Production :

myfile
Avertissement
Dans le cas où le fichier a un nom comme myfile.tar.gz, toutes les méthodes expliquées ci-dessus retourneront myfile.tar comme nom de fichier.

Supposons que nous ayons besoin d’obtenir le nom du fichier sans la partie après . comme myfile au lieu de myfile.tar à partir du chemin Desktop/folder/myfile.tar.gz, la méthode string.index() peut être utilisée pour extraire uniquement myfile de myfile.tar. Mais l’inconvénient de cette méthode est que si le . fait partie du nom du fichier comme my.file.tar.gz, elle renverra mon comme nom de fichier.

L’exemple de code ci-dessous montre comment nous pouvons utiliser string.index() pour supprimer .tar de la sortie myfile.tar des méthodes expliquées ci-dessus :

file_name = "myfile.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)

file_name = "my.file.tar"
index = file_name.index(".")
file_name = file_name[:index]
print(file_name)

Production :

myfile
my

Article connexe - Python File