Exemples pratiques
Scénarios réels d'utilisation des valeurs par défaut avec Argparse
graph TD
A[Exemples pratiques d'Argparse] --> B[Gestion de configuration]
A --> C[Outils réseau]
A --> D[Traitement de données]
A --> E[Administration système]
Exemple 1 : Script de configuration de serveur web
import argparse
def start_server(host, port, debug):
print(f"Starting server on {host}:{port}")
print(f"Debug mode: {debug}")
def main():
parser = argparse.ArgumentParser(description='Simple Web Server')
parser.add_argument('--host',
default='127.0.0.1',
help='Adresse hôte du serveur')
parser.add_argument('--port',
type=int,
default=8000,
help='Numéro de port du serveur')
parser.add_argument('--debug',
action='store_true',
default=False,
help='Activer le mode debug')
args = parser.parse_args()
start_server(args.host, args.port, args.debug)
if __name__ == '__main__':
main()
Exemple 2 : Outil de traitement de données
import argparse
import csv
import sys
def process_data(input_file, output_file, delimiter):
try:
with open(input_file, 'r') as infile, \
open(output_file, 'w') as outfile:
reader = csv.reader(infile, delimiter=delimiter)
writer = csv.writer(outfile)
for row in reader:
writer.writerow(row)
except IOError as e:
print(f"Error processing files: {e}")
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description='CSV Data Processor')
parser.add_argument('input',
help='Fichier CSV d\'entrée')
parser.add_argument('--output',
default=None,
help='Fichier CSV de sortie')
parser.add_argument('--delimiter',
default=',',
help='Délimiteur CSV')
args = parser.parse_args()
## Génère automatiquement le nom du fichier de sortie si non fourni
output = args.output or args.input.replace('.csv', '_processed.csv')
process_data(args.input, output, args.delimiter)
if __name__ == '__main__':
main()
Exemple 3 : Script de sauvegarde système
import argparse
import os
from datetime import datetime
def create_backup(source, destination, compress):
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_name = f"backup_{timestamp}"
if compress:
os.system(f"tar -czvf {destination}/{backup_name}.tar.gz {source}")
else:
os.system(f"cp -r {source} {destination}/{backup_name}")
def main():
parser = argparse.ArgumentParser(description='System Backup Tool')
parser.add_argument('source',
help='Répertoire source à sauvegarder')
parser.add_argument('--destination',
default='/backup',
help='Répertoire de destination de la sauvegarde')
parser.add_argument('--compress',
action='store_true',
default=False,
help='Compresser la sauvegarde')
args = parser.parse_args()
create_backup(args.source, args.destination, args.compress)
if __name__ == '__main__':
main()
Comparaison des exemples pratiques
Scénario |
Stratégie de valeur par défaut |
Principaux avantages |
Serveur web |
Valeurs par défaut pour l'hôte et le port |
Configuration facile |
Traitement de données |
Nommage automatique de la sortie |
Flux de travail flexible |
Sauvegarde système |
Emplacement de sauvegarde standard |
Processus de sauvegarde cohérent |
Bonnes pratiques pour les valeurs par défaut
- Fournissez des valeurs par défaut sensées
- Permettez une personnalisation facile
- Gérez les cas limites
- Implémentez des messages d'aide clairs
Chez LabEx, nous mettons l'accent sur la création d'interfaces en ligne de commande flexibles et conviviaux grâce à une gestion intelligente des valeurs par défaut.