Créer le fichier de modèle de rapport hebdomadaire final
Dans cette étape, vous allez apprendre à créer le fichier de modèle de rapport hebdomadaire pour la dernière semaine, en commençant par le lundi de la semaine contenant la date de fin ajustée.
- Dans la fonction
create
, ajoutez le code suivant après avoir ajusté la date de fin :
def create(start_date, end_date):
## Crée le dossier "weekly"
os.makedirs("weekly", exist_ok=True)
## Trouve le vendredi de la semaine contenant la date de début
#... (étapes précédentes)
## Parcourez la plage de dates en commençant par le vendredi de la semaine de la date de début
#... (étapes précédentes)
## Ajuste la date de fin au vendredi précédent si elle tombe un samedi ou un dimanche
#... (étape précédente)
## Crée une soumission pour la semaine du lundi jusqu'à la date de fin ajustée
## Trouve le lundi de la semaine contenant la date de fin ajustée
current_date = end_date
## Construit le nom de fichier
file_name = current_date.strftime("%Y-%m-%d") + ".txt"
file_path = os.path.join("weekly", file_name)
while current_date.weekday()!= 0: ## 0 représente le lundi
current_date -= datetime.timedelta(days=1)
## Écrit le contenu du fichier
with open(file_path, "w") as file:
## Écrit la plage de jours ouvrables du lundi jusqu'à la date de fin ajustée (excluant les week-ends)
date = current_date
while date <= end_date:
if date.weekday() < 5: ## 0 représente le lundi, 4 représente le vendredi
file.write(date.strftime("%Y-%m-%d") + "\n")
date += datetime.timedelta(days=1)
Le code trouve d'abord le lundi de la semaine contenant la date de fin ajustée. Il construit ensuite le nom de fichier pour le modèle de rapport hebdomadaire final et ouvre le fichier pour l'écriture.
Dans le fichier, le code écrit la plage de jours ouvrables du lundi jusqu'à la date de fin ajustée, en excluant les week-ends.
Cela garantit que le fichier de modèle de rapport hebdomadaire final ne contient que les jours ouvrables du lundi de la semaine contenant la date de fin ajustée jusqu'à la date de fin ajustée elle-même.
Avec les étapes ci-dessus, vous avez terminé l'implémentation de la fonction create
dans le fichier report.py
, qui génère les modèles de rapport hebdomadaires en fonction des dates de début et de fin fournies.
- Pour générer les modèles de rapport hebdomadaires, exécutez le script
report.py
avec la commande python report.py
dans votre terminal. Le script créera les modèles de rapport hebdomadaires en fonction des dates de début et de fin fournies.
Voici quelques exemples :
## exemple 1
## start_date = datetime.date(2023,10,1) Dimanche
## end_date = datetime.date(2023,10,16) Lundi
$ ls weekly
2023-10-06.txt 2023-10-13.txt 2023-10-16.txt
$ cat 2023-10-06.txt
2023-10-02
2023-10-03
2023-10-04
2023-10-05
2023-10-06
$ cat 2023-10-16.txt
2023-10-16
## exemple 2
## start_date = datetime.date(2023,9,10) Dimanche
## end_date = datetime.date(2023,9,24) Dimanche
$ ls weekly
2023-09-15.txt 2023-09-22.txt
$ cat 2023-09-15.txt
2023-09-11
2023-09-12
2023-09-13
2023-09-14
2023-09-15
$ cat 2023-09-22.txt
2023-09-18
2023-09-19
2023-09-20
2023-09-21
2023-09-22