Clé cachée dans un nom fichier crypté
Fermémamiemando Messages postés 33443 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 décembre 2024 - 21 juin 2023 à 20:56
- Clé cachée dans un nom fichier crypté
- Fichier rar - Guide
- Clé windows 10 gratuit - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Clé usb non détectée - Guide
3 réponses
As-tu déjà essayé quelque chose? As-tu pensé à str.index() ou str.find() ?
Ou encore str.replace() ?
21 juin 2023 à 17:16
Bonjour,
Personnellement je n'ai pas compris ce que tu cherches à faire... probablement parce que l'exemple ne détaille ni le contenu du fichier csv, ni ce qu'il faut en faire.
De plus, comme le dit Pierrot, voir ce que tu as commencé à coder nous permettrait de mieux comprendre ce que tu cherches à faire.
Bonne chance
21 juin 2023 à 18:27
Bonjour,
Si j'ai bien compris, la recherche doit porter sur le nom du fichier csv et pas son contenu.
Si je recherche "6g" dans le deuxième exemple, ça doit me retourner 15-16.
Ce que l'histoire ne dit pas, c'est s'il peut y avoir dans le même répertoire plusieurs fichiers csv objets de la recherche et si elle doit toujours comporter 2 caractères (donc excluant toujours IP23 ou analogues).
Moyennant quoi la solution est simple en Batch, mais la question est posée pour Python, je botte en touche.
21 juin 2023 à 20:56
Bonjour,
En admettant que l'interprétation de Brucine #4 soit correcte, on pourrait écrire quelque chose dans ce genre :
def split_keys(s: str) -> dict: d = dict() i = 0 for (j, a) in enumerate(s): if a in {"_", "."}: key = s[i:j] ij = (i, j) i = j + 1 if len(key) != 2: continue d[key] = ij if a == ".": break return d s = "xx_IP23_FA_5Z_6g_Fu_8k_32_Rq_V7_mj_Ao_B9_rj_yw.csv" d = split_keys(s) print(d.get("FA")) # (8, 10)
On peut vérifier que le dictionnaire d contient bien des "clés" de longueur 2
print(d) # {'xx': (0, 2), # 'FA': (8, 10), # '5Z': (11, 13), # '6g': (14, 16), # 'Fu': (17, 19), # '8k': (20, 22), # '32': (23, 25), # 'Rq': (26, 28), # 'V7': (29, 31), # 'mj': (32, 34), # 'Ao': (35, 37), # 'B9': (38, 40), # 'rj': (41, 43), # 'yw': (44, 46)}
... et que ces indices sont corrects :
def test_split_keys(s: str): d = split_keys(s) for (key, (i, j)) in d.items(): assert s[i:j] == key test_split_keys(s)
Bonne chance
21 juin 2023 à 17:14
Oui, mais j'y suis pas arrivé