Avant proposJ'ai fait
un petit script pour pouvoir changer le format des dates dans des fichiers textes. (Pour les logiciel qui demandent un format spécifique notamment)
Ca fonctionne pour bien mon usage, j'ai essayé de le rendre plus versatile et résilient possible, j'ai ajouté une petite interface en ligne de commande.
Si vous connaissez des programmes qui le font déjà (et mieux) je suis preneur,
si vous avez des suggestions, je suis preneur aussi
Fonctionnement 1) génération d'une expression régulière :
strftime ->
regex 2) identification des dates avec le regex
3) conversions entre les différents format de dates avec la lib
datetime de python
UtilisationNécessite uniquement
python3 (pas le lib externes) et votre fichier texte.
protocole:
1) définir le format des dates (voir le format
strftime) en entrée et sortie,
2) définir les locales (
locale -a pour lister celles disponibles sur le système) à utiliser en entré et sortie (par défaut celle de l'utilisateur)
3) Composer la ligne de commande (seul le format d'entrée et le nom du fichier sont requis)
astuces:
- utiliser l'argument
--in-place pour modifier le fichier, sinon le retour se fait dans le terminal
- utiliser l'argument
--confirm pour demander avant de modifier chaque date
n'oubliez pas de donnez les droits d’exécution (ou faire python3 ma_commande)
usage: repl_date.py [-h] [-l LOCALE_IN] [-L LOCALE_OUT] -f FORMAT_IN [-F FORMAT_OUT] [-i] [-c] [--debug]
optional arguments:
-h, --help show this help message and exit
-l LOCALE_IN, --locale-in LOCALE_IN
default to user locale, ex : 'fr_FR.utf8'
-L LOCALE_OUT, --locale-out LOCALE_OUT
default to user locale
-f FORMAT_IN, --format-in FORMAT_IN
-F FORMAT_OUT, --format-out FORMAT_OUT
default = %d/%m/%Y
-i, --in-place edit file in place
-c, --confirm ask for confirmation before modify date
--debug
Exemples
Le Jeudi 14 janvier 2022, Thursday 14 January 2022
Mercredi 12 Janvier 2022,
13/01/2022 13/212/2022 32/01/2022 13/01/202
14/01/2022 14 01 2022 14-01-2022
./repl_date.py --locale-in "fr_FR.utf8" --format-in "%A %d %B %Y" --format-out "%d/%m/%Y" exemple.txt
Le 14/01/2022, Thursday 14 January 2022
12/01/2022,
13/01/2022 13/212/2022 32/01/2022 13/01/202
14/01/2022 14 01 2022 14-01-2022
./repl_date.py --locale-in "en_US.utf8" --format-in "%A %d %B %Y" --format-out "%d/%m/%Y" exemple.txt
Le Jeudi 14 janvier 2022, 14/01/2022
Mercredi 12 Janvier 2022,
13/01/2022 13/212/2022 32/01/2022 13/01/202
14/01/2022 14 01 2022 14-01-2022
./repl_date.py --format-in "%d/%m/%Y" --format-out "== le %A %d %B %Y ==" exemple.txt
Le Jeudi 14 janvier 2022, Thursday 14 January 2022
Mercredi 12 Janvier 2022,
== le jeudi 13 janvier 2022 == 13/212/2022 32/01/2022 13/01/202
== le vendredi 14 janvier 2022 == 14 01 2022 14-01-2022
Dernière modification par David5647 (24-01-2022 19:50:25)