76 lines
No EOL
2.3 KiB
Python
76 lines
No EOL
2.3 KiB
Python
#!/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() |