CodeGym/Cours/Python SELF FR/Travailler avec des fichiers sur le disque

Travailler avec des fichiers sur le disque

Disponible

6.1 Travailler avec des fichiers

Python fournit de nombreuses fonctions et modules intégrés pour travailler avec des fichiers et des répertoires. Les opérations principales sont effectuées à l'aide des modules intégrés os, shutil et d'autres.

Trois opérations principales avec des fichiers :

  • Copie
  • Déplacement
  • Suppression

Pour les réaliser, le module shutil est parfait.

Copie d'un fichier

import shutil

shutil.copy('source.txt', 'destination.txt')

Déplacement d'un fichier

import shutil

shutil.move('source.txt', 'destination.txt')

Suppression d'un fichier

import os

os.remove('example.txt')

Plus simple que jamais.

6.2 Vérification de l'existence d'un fichier

Il est souvent nécessaire de vérifier si un fichier spécifique existe ou non. Pour cela, le module os a une méthode spéciale — exists().

Vérification de l'existence d'un fichier

import os

if os.path.exists('example.txt'):
    print("File exists")
else:
    print("File does not exist")
    # Si le fichier n'existe pas, le programme exécutera les actions décrites dans le bloc else.
    # Par exemple, on peut afficher un avertissement, créer un nouveau fichier ou quitter le programme.

Si le fichier n'existe pas, le programme peut gérer cela à l'aide de conditions ou lever une exception.

6.3 Vérification du type d'objet : fichier ou répertoire

Il est souvent nécessaire de vérifier si un objet est un fichier ou un répertoire. Par exemple, si vous lisez tout le contenu d'un répertoire et que les fichiers doivent être traités d'une manière, et les répertoires d'une autre.

Pour ces cas, il y a deux méthodes spéciales — isdir(), qui vérifie si un objet est un répertoire, et isfile(), qui vérifie si un objet est un fichier.

Vérifier si c'est un répertoire ou non

if os.path.isdir('example_directory'):
    print("C'est un répertoire")
else:
    print("Ce n'est pas un répertoire")

Vérifier si c'est un fichier ou non

if os.path.isfile('example_file'):
    print("C'est un fichier")
else:
    print("Ce n'est pas un fichier")

Ce sont des fonctions très utiles que vous utiliserez plus souvent que vous ne le pensez. :)

6.4 Travailler avec des chemins

Le module os a un sous-module os.path, qui contient des fonctions utiles pour travailler avec des fichiers et des répertoires. Voici quelques-unes d'entre elles :

Obtenir l'extension d'un fichier

La fonction splitext() divise le nom d'un fichier en deux parties et renvoie une liste de deux éléments : le nom et l'extension.

import os.path

# Obtenir l'extension d'un fichier
file_path = 'example.txt'
file_extension = os.path.splitext(file_path)[1]
print(f"Extension du fichier : {file_extension}")

Obtenir le nom d'un fichier sans extension

import os.path

# Obtenir le nom d'un fichier sans extension
file_path = 'example.txt'
file_name = os.path.splitext(os.path.basename(file_path))[0]
print(f"Nom du fichier sans extension : {file_name}")

Obtenir le nom d'un fichier à partir du chemin

La fonction basename() renvoie uniquement le nom du fichier, en supprimant tout le chemin y conduisant.

import os.path

# Obtenir le nom d'un fichier à partir du chemin
file_path = '/path/to/example.txt'
file_name = os.path.basename(file_path)
print(f"Nom du fichier : {file_name}")

Obtenir le répertoire à partir du chemin

Il est aussi facile d'obtenir uniquement le répertoire à partir du nom de fichier en utilisant la fonction dirname().

import os.path

# Obtenir le répertoire à partir du chemin
file_path = '/path/to/example.txt'
directory = os.path.dirname(file_path)
print(f"Répertoire : {directory}")

Concatenation des chemins

Si vous avez séparément un répertoire et un nom de fichier, vous pouvez obtenir le chemin complet vers ce fichier.

import os.path

# Concatenation des chemins
directory = '/path/to'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Chemin complet : {full_path}")

6.5 Chemins indépendants de la plateforme

Lors de la manipulation des chemins, il est important de prendre en compte les différences entre les systèmes d'exploitation. Les séparateurs de chemins peuvent varier, et le code qui fonctionne sur une plateforme peut ne pas fonctionner sur une autre. Pour éviter les problèmes lors du transfert de code entre différents systèmes d'exploitation, utilisez les fonctions os.path.join(), os.path.abspath() et os.path.dirname(), qui assurent la compatibilité avec différentes plateformes.

Par exemple :

import os

# Concatenation des chemins d'une manière indépendante de la plateforme
directory = 'some_directory'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Chemin complet : {full_path}")

Obtenir le chemin absolu

Si vous avez un chemin seulement relatif au répertoire de travail actuel, mais que vous voulez le convertir en chemin absolu, il y a la fonction abspath() pour cela.

import os.path

# Obtenir le chemin absolu
relative_path = 'example.txt'
absolute_path = os.path.abspath(relative_path)
print(f"Chemin absolu : {absolute_path}")

Important! Utilisez toujours les fonctions système lors de la manipulation des chemins, car votre code pourrait être exécuté sur un autre système d'exploitation où le séparateur de fichiers n'est pas \, mais /, ou où les «:» sont interdits dans les chemins ou autre chose.

2
Mission
Python SELF FR,  niveau 21leçon 5
Bloqué
Copie de fichier
Copie de fichier
2
Mission
Python SELF FR,  niveau 21leçon 5
Bloqué
Vérification de l'existence d'un fichier
Vérification de l'existence d'un fichier
Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires