Prévention pratique des erreurs
Vérification de l'existence du fichier
Avant d'effectuer des opérations sur un fichier, vérifiez toujours son existence :
import os
def safe_file_read(file_path):
if os.path.exists(file_path):
try:
with open(file_path, 'r') as file:
return file.read()
except PermissionError:
print("Permission denied to read the file.")
else:
print(f"File {file_path} does not exist.")
return None
Techniques de validation des chemins
graph TD
A[File Path Input] --> B{Path Validation}
B -->|Valid| C[Proceed with Operation]
B -->|Invalid| D[Generate Error/Warning]
Gestion complète des chemins
Technique |
Méthode |
Objectif |
os.path.exists() |
Vérifier l'existence du fichier |
Vérifier la présence du fichier |
os.path.isfile() |
Confirmer le type de fichier |
S'assurer qu'il s'agit d'un fichier |
os.access() |
Vérifier les autorisations du fichier |
Valider les droits d'accès |
Validation avancée des chemins
import os
def validate_file_path(file_path):
## Check if path exists
if not os.path.exists(file_path):
raise FileNotFoundError(f"Path {file_path} does not exist")
## Check if it's a file
if not os.path.isfile(file_path):
raise ValueError(f"{file_path} is not a valid file")
## Check read permissions
if not os.access(file_path, os.R_OK):
raise PermissionError(f"No read permission for {file_path}")
return True
## Usage example
try:
validate_file_path('/home/user/documents/example.txt')
## Proceed with file operations
except (FileNotFoundError, ValueError, PermissionError) as e:
print(f"File validation error: {e}")
Stratégies de valeur par défaut
def read_file_with_default(file_path, default_content=''):
try:
with open(file_path, 'r') as file:
return file.read()
except FileNotFoundError:
print(f"File {file_path} not found. Using default content.")
return default_content
Gestion de plusieurs fichiers
def process_multiple_files(file_paths):
processed_files = []
for path in file_paths:
try:
with open(path, 'r') as file:
processed_files.append(file.read())
except FileNotFoundError:
print(f"Skipping non-existent file: {path}")
return processed_files
Conseil LabEx Pro
LabEx recommande de mettre en œuvre des mécanismes de gestion de fichiers robustes qui anticipent les erreurs potentielles et fournissent des stratégies de secours élégantes.