J'ai sur mon disque des dossiers qui ne sont pas nommés correctement que j'aimerais renommer grâce à un script.
Chaque dossier est nommé de la façon suivante :
D_month_YYYY # exemple : 2_avril_2022
Comme vous pouvez le voir, seul le mois est écrit en lettre, le jour et l'année étant en chiffres.
J'aimerais modifier les dossiers avec le format suivant :
YYYY-MM-DDD # exemple : 2022-04-02
Notez que pour le jour, on passe d'un format D
à DD
: vous devez vous assurer d'ajouter le 0 au début du jour dans le cas d'un jour se situant entre 1 et 9 (par exemple 01
au lieu de 1
).
Vous devez récupérer la liste de dossiers dans le bon format dans la liste result
.
Voici la liste de dossiers en entrée :
folders = ["26_fevrier_2022",
"2_avril_2022",
"6_juin_2022",
"7_janvier_2022",
"7_mai_2022",
"8_avril_2022",
"9_mars_2022",
"11_juillet_2022",
"12_fevrier_2022",
"14_janvier_2022",
"15_mai_2022",
"16_avril_2022",
"16_mars_2022",
"17_decembre_2021",
"18_juin_2022",
"19_fevrier_2022",
"19_juillet_2022",
"21_aout_2022",
"21_avril_2022",
"22_janvier_2022",
"23_mai_2022",
"24_mars_2022"]
Et ce que vous devez récupérer en sortie dans la variable result
:
['2022-02-26',
'2022-04-02',
'2022-06-06',
'2022-01-07',
'2022-05-07',
'2022-04-08',
'2022-03-09',
'2022-07-11',
'2022-02-12',
'2022-01-14',
'2022-05-15',
'2022-04-16',
'2022-03-16',
'2021-12-17',
'2022-06-18',
'2022-02-19',
'2022-07-19',
'2022-08-21',
'2022-04-21',
'2022-01-22',
'2022-05-23',
'2022-03-24']
folders = ["26_fevrier_2022", "2_avril_2022", "6_juin_2022", "7_janvier_2022", "7_mai_2022", "8_avril_2022", "9_mars_2022", "11_juillet_2022", "12_fevrier_2022", "14_janvier_2022", "15_mai_2022", "16_avril_2022", "16_mars_2022", "17_decembre_2021", "18_juin_2022", "19_fevrier_2022", "19_juillet_2022", "21_aout_2022", "21_avril_2022", "22_janvier_2022", "23_mai_2022", "24_mars_2022"] result = [] dict_months = { "janvier": "01", "fevrier": "02", "mars": "03", "avril": "04", "mai": "05", "juin": "06", "juillet": "07", "aout": "08", "septembre": "09", "octobre": "10", "novembre": "11", "decembre": "12"} dict_days = { "1": "01", "2": "02", "3": "03", "4": "04", "5": "05", "6": "06", "7": "07", "8": "08", "9": "09", "10": "10", "11": "11", "12": "12", "13": "13", "14": "14", "15": "15", "16": "16", "17": "17", "18": "18", "19": "19", "20": "20", "21": "21", "22": "22", "23": "23", "24": "24", "25": "25", "26": "26", } for ele in folders: string_separ = ele.split("_") new_tupl_ele = (string_separ[2], dict_months[string_separ[1]], dict_days[string_separ[0]]) new_list_ele = list(new_tupl_ele) formated_date = '-'.join(new_list_ele) result.append(formated_date) print(result)
Arnold

from datetime import datetime folders = ["26_fevrier_2022", "2_avril_2022", "6_juin_2022", "7_janvier_2022", "7_mai_2022", "8_avril_2022", "9_mars_2022", "11_juillet_2022", "12_fevrier_2022", "14_janvier_2022", "15_mai_2022", "16_avril_2022", "16_mars_2022", "17_decembre_2021", "18_juin_2022", "19_fevrier_2022", "19_juillet_2022", "21_aout_2022", "21_avril_2022", "22_janvier_2022", "23_mai_2022", "24_mars_2022"] mois = {"janvier": "01", "fevrier": "02", "mars": "03", "avril": "04", "mai": "05", "juin": "06", "juillet": "07","aout": "08", "septembre": "09", "octobre": "10", "novembre": "11", "decembre": "12"} result = [] for i, element in enumerate(folders): folders[i] = folders[i].split("_") folders[i].reverse() folders[i][1] = mois[folders[i][1]] if len(folders[i][2]) == 1: folders[i][2] = folders[i][2].zfill(2) result.append("-".join(folders[i])) print(result)
Romu80

folders = ["26_fevrier_2022", "2_avril_2022", "6_juin_2022", "7_janvier_2022", "7_mai_2022", "8_avril_2022", "9_mars_2022", "11_juillet_2022", "12_fevrier_2022", "14_janvier_2022", "15_mai_2022", "16_avril_2022", "16_mars_2022", "17_decembre_2021", "18_juin_2022", "19_fevrier_2022", "19_juillet_2022", "21_aout_2022", "21_avril_2022", "22_janvier_2022", "23_mai_2022", "24_mars_2022"] result = [] months = dict({ "janvier" : "01", "fevrier" : "02", "mars" : "03", "avril" : "04", "mai" : "05", "juin" : "06", "juillet" : "07", "aout" : "08", "septembre" : "09", "octobre" : "10", "novembre" : "11", "decembre" : "12" }) for items in folders: d, m, y = items.split("_") result.append(f"{y}-{months[m]}-{d.zfill(2)}") print(result)
Tristan

folders = ["26_fevrier_2022", "2_avril_2022", "6_juin_2022", "7_janvier_2022", "7_mai_2022", "8_avril_2022", "9_mars_2022", "11_juillet_2022", "12_fevrier_2022", "14_janvier_2022", "15_mai_2022", "16_avril_2022", "16_mars_2022", "17_decembre_2021", "18_juin_2022", "19_fevrier_2022", "19_juillet_2022", "21_aout_2022", "21_avril_2022", "22_janvier_2022", "23_mai_2022", "24_mars_2022"] mois_numerique = { "janvier": "01", "fevrier": "02", "mars": "03", "avril": "04", "mai": "05", "juin": "06", "juillet": "07", "aout": "08", "septembre": "09", "octobre": "10", "novembre": "11", "decembre": "12", } liste = [] for i in folders: date_split = i.split("_") for key, value in mois_numerique.items(): if date_split[1] == key: date_split[1] = value if len(date_split[0]) == 1: date_split[0] = "0" + str(date_split[0]) liste.append("-".join((date_split[2], date_split[1], date_split[0]))) result = liste
folders = ["26_fevrier_2022", "2_avril_2022", "6_juin_2022", "7_janvier_2022", "7_mai_2022", "8_avril_2022", "9_mars_2022", "11_juillet_2022", "12_fevrier_2022", "14_janvier_2022", "15_mai_2022", "16_avril_2022", "16_mars_2022", "17_decembre_2021", "18_juin_2022", "19_fevrier_2022", "19_juillet_2022", "21_aout_2022", "21_avril_2022", "22_janvier_2022", "23_mai_2022", "24_mars_2022"] result = []
Un instant...
Test de la variable result
La variable result
doit contenir la liste de noms de dossiers nommés selon le format "YYYY-MM-DD".
Bravo, tu as réussi cet exercice de code 🥳

Soumettre ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.
Ma solution :
Mes notes
Sauvegardé