Générer une liste de dates avec Python et datetime

Voulant une liste de dates, écrite de façon humainement lisible et en toutes lettres. Cette liste doit correspondre à un jour de la semaine. J’ai le choix de le faire à la main, ou d’écrire un petit script jetable. Comme l’idée de faire une telle liste à la main ne me plaisait pas, je choisis donc le script, et bien sûr, Python pour le faire.

Le script est on ne peut plus simple, je le mets surtout dans le cas où il servirai à quelqu’un d’autre, et pour le garder sous le coude.

On souhaite une sortie ressemblant à ça :

  * Vendredi 28 octobre 2011 :
  * Vendredi 04 novembre 2011 :
  * Vendredi 11 novembre 2011 :
...

Voici le script au complet:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import locale
locale.setlocale(locale.LC_ALL, '')

from datetime import date, timedelta

#Jour de départ
day = 28
month = 10
year = 2011

#Nombre de jours à générer
number = 20

#Nom du fichier à écrire
filename = 'dates.txt'

with open(filename, 'w') as f:

    d = date(year, month, day)
    for i in range(number):
        f.write('  * ' + d.strftime('%A %d %B %Y : \\n').capitalize())
        d += timedelta(days=7)

Quelques explications:

  • L’import de locale sert à avoir les dates en français ;
  • strftime sert à choisir le format de sortie de la date, et ainsi avoir une sortie en toutes lettres ;
  • capitalize sert à avoir la 1ère lettre en capitale (Vendredi) ;
  • timedelta sert à rajouter 7 jours à la date actuelle, d’où l’iterration d’une semaine ;
  • Il n’y a pas de close du fichier, car avec with celui-ci est géré par Python de façon assez fine.

Je ne pense pas qu’il soit utile de rajouter d’autres explications, en espérant que cela puisse servir à quelqu’un d’autre que moi.

Vus : 2815
Publié par Nicolas Paris : 149