⚡ - sauvegarde automatique de l'avancement du livre
This commit is contained in:
parent
ef801609cb
commit
7ae7d5915b
7 changed files with 286 additions and 40 deletions
97
view_suivi_livre.py
Normal file
97
view_suivi_livre.py
Normal file
|
@ -0,0 +1,97 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Script pour visualiser les données du fichier suivi_livre.csv.
|
||||
Ce script est à utiliser à la place d'exécuter directement le fichier CSV.
|
||||
"""
|
||||
|
||||
import csv
|
||||
import sys
|
||||
from datetime import datetime
|
||||
import os
|
||||
|
||||
def display_csv_data(csv_file='suivi_livre.csv'):
|
||||
"""
|
||||
Affiche les données du fichier CSV de suivi de livre de manière formatée.
|
||||
"""
|
||||
if not os.path.exists(csv_file):
|
||||
print(f"Erreur: Le fichier {csv_file} n'existe pas.")
|
||||
return False
|
||||
|
||||
try:
|
||||
# Lire le fichier CSV
|
||||
with open(csv_file, 'r') as csvfile:
|
||||
reader = csv.reader(csvfile, delimiter=';')
|
||||
data = []
|
||||
for row in reader:
|
||||
# Ignorer les lignes de commentaire qui commencent par #
|
||||
if row and not row[0].startswith('#'):
|
||||
data.append(row)
|
||||
|
||||
if not data:
|
||||
print("Aucune donnée trouvée dans le fichier CSV.")
|
||||
return False
|
||||
|
||||
# Afficher un en-tête
|
||||
print("\n=== DONNÉES DE SUIVI DU LIVRE ===\n")
|
||||
|
||||
# Afficher les colonnes
|
||||
print(f"{'Date':<25} {'Mots':<8} {'Intrigues':<10} {'Personnages':<12} {'Mots Perso':<12} {'Chapitres':<10} {'Sous-Chap':<10}")
|
||||
print("-" * 90)
|
||||
|
||||
# Afficher chaque ligne de données
|
||||
for row in data:
|
||||
if len(row) >= 7: # S'assurer qu'il y a assez de colonnes
|
||||
date = datetime.fromisoformat(row[0]).strftime('%Y-%m-%d %H:%M:%S')
|
||||
mots = row[1]
|
||||
intrigues = row[2]
|
||||
personnages = row[3]
|
||||
personnages_mots = row[4]
|
||||
chapitres = row[5]
|
||||
sous_chapitres = row[6]
|
||||
|
||||
print(f"{date:<25} {mots:<8} {intrigues:<10} {personnages:<12} {personnages_mots:<12} {chapitres:<10} {sous_chapitres:<10}")
|
||||
|
||||
# Afficher quelques statistiques
|
||||
if data:
|
||||
last_row = data[-1]
|
||||
print("\n=== STATISTIQUES ===\n")
|
||||
print(f"Nombre total de mots: {last_row[1]}")
|
||||
print(f"Nombre de chapitres: {last_row[5]}")
|
||||
print(f"Nombre de personnages: {last_row[3]}")
|
||||
|
||||
# Calculer la progression depuis la première entrée
|
||||
if len(data) > 1:
|
||||
first_row = data[0]
|
||||
mots_diff = int(last_row[1]) - int(first_row[1])
|
||||
print(f"\nProgression depuis le début du suivi: {mots_diff} mots")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la lecture du fichier CSV: {e}")
|
||||
return False
|
||||
|
||||
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'
|
||||
|
||||
if not display_csv_data(csv_file):
|
||||
print("\nPour analyser ces données de manière plus approfondie, utilisez:")
|
||||
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 1
|
||||
|
||||
print("\nPour analyser ces données de manière plus approfondie, utilisez:")
|
||||
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())
|
Loading…
Add table
Add a link
Reference in a new issue