logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-01-2022 19:06:36

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

[Script] Convertir format date dans fichiers textes

Avant propos

J'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 tongue

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

Utilisation

Né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)

 ./repl_date.py -h

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

cat exemple.txt

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)

Hors ligne

Pied de page des forums