#!/usr/bin/env python3 """ Script pour ajouter un en-tête Python au début d'un fichier CSV afin qu'il puisse être exécuté directement sans erreur et affiche un message d'aide. """ import os import sys def fix_csv_file(csv_file_path): """ Ajoute un en-tête Python au début du fichier CSV pour gérer l'exécution directe. """ if not os.path.exists(csv_file_path): print(f"Erreur: Le fichier {csv_file_path} n'existe pas.") return False # Lire le contenu actuel du fichier with open(csv_file_path, 'r') as f: content = f.read() # Vérifier si le fichier commence déjà par le script Python if content.startswith('#!/usr/bin/env python3'): print(f"Le fichier {csv_file_path} est déjà protégé.") return True # En-tête Python à ajouter au début du fichier python_header = '''#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Ce fichier est un CSV contenant des données de suivi de livre. Il n'est pas destiné à être exécuté directement comme un script Python. Pour analyser ces données, utilisez plutôt: - follow_progress.py: pour mettre à jour et analyser les statistiques - generate_dashboard.py: pour générer un tableau de bord visuel """ import sys def main(): print("Ce fichier est un CSV contenant des données de suivi de livre.") print("Il n'est pas destiné à être exécuté directement comme un script Python.") print("\\nPour analyser ces données, utilisez plutôt:") print("- follow_progress.py: pour mettre à jour et analyser les statistiques") print("- generate_dashboard.py: pour générer un tableau de bord visuel") return 0 if __name__ == "__main__": sys.exit(main()) # Les données CSV commencent ci-dessous: ''' # Ajouter l'en-tête Python au début du fichier with open(csv_file_path, 'w') as f: f.write(python_header) f.write(content) print(f"Le fichier {csv_file_path} a été protégé contre l'exécution directe.") return True def main(): """ Fonction principale. """ # Utiliser le fichier spécifié en argument ou par défaut 'suivi_livre.csv' if len(sys.argv) > 1: csv_file = sys.argv[1] else: csv_file = 'suivi_livre.csv' fix_csv_file(csv_file) if __name__ == "__main__": main()