Chercher les accent dans un texte par python

Résolu
masal -  
 masal -
bonjour je suis débutant en programmation et j'ai besoin d'un programme qui cherche les caractères spéciaux comme (é,à,è,...) dans un texte et les remplace [par exemple (é=\'e)] alors j'ai pensé à en utilisant un tableau dans lequel il y a les caractères spéciaux avec leurs correspondances mais je ne sais pas comment je peux le faire

2 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Bonjour,

    Tu peux t'inspirer de ce qui est fait dans ce fichier :

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    MAP_TO_INTERNATIONAL = {
        # Upper case
        "Á": "A",
        "À": "A",
        "Ä": "A",
        "Ć": "C",
        "Ç": "C",
        "Đ": "D",
        "É": "E",
        "Ê": "E",
        "È": "E",
        "Ë": "E",
        "Í": "I",
        "Î": "I",
        "Ï": "I",
        "Ł": "L",
        "Ö": "O",
        "Ô": "O",
        "Û": "U",
        "Ü": "U",
        "Š": "S",
        # Lower case
        "á": "a",
        "à": "a",
        "ä": "a",
        "ć": "c",
        "ç": "c",
        "đ": "d",
        "é": "e",
        "ê": "e",
        "è": "e",
        "ë": "e",
        "í": "i",
        "î": "i",
        "ï": "i",
        "ł": "l",
        "ö": "o",
        "ô": "o",
        "û": "u",
        "ü": "u",
        "š": "s",
        # Only lower
        "ß": "ss",
    }
    
    def to_international_string(s: str) -> str:
        translator = str.maketrans(MAP_TO_INTERNATIONAL)
        return s.translate(translator)


    Bonne chance
    1
    1. masal
       
      merci beaucoup pour votre aide
      0
  2. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Bonjour,

    J'ai effectué plutôt l'inverse sur des fichiers de playlist musicaux où les chemins d'accès contenaient des caractères %xx, par exemple %20 = blanc, %C3%A8 = è

    Voilà un exemple qui traite cela,
    car = []
    with open("UrlUncTranscodage.txt", encoding="utf8") as fichier:
       for ligne in fichier:
          car.append((ligne[0:1],ligne.rstrip('\n')[2:]))
    print(car)
    line="file://nasina/Multimedia/Musique/CD/Alain%20Bashung/Bleu%20P%C3%A9trole/05-V%C3%A9nus.mp4</location>"
    for i in range(len(car)):
       print(car[i][0],car[i][1])
       line=line.replace(car[i][1],car[i][0])
    
    print(line)


    avec le fichier en entrée qui constitue le tableau de caractères à traiter :
      %20
    ! %21
    " %22
    # %23
    $ %24
    % %25
    & %26
    ' %27
    ( %28
    ) %29
    ¤ %2A
    + %2B
    , %2C
    - %2D
    . %2E
    / %2F
    : %3A
    ; %3B
    < %3C
    = %3D
    > %3E
    ? %3F
    @ %40
    [ %5B
    \ %5C
    ] %5D
    ^ %5E
    _ %5F
    ` %60
    { %7B
    | %7C
    } %7D
    ~ %7E
    « %C2%AB
    » %C2%BB
    À %C3%80
    Â %C3%82
    Ç %C3%87
    È %C3%88
    É %C3%89
    Ê %C3%8A
    Ë %C3%8B
    Î %C3%8E
    Ï %C3%8F
    Ô %C3%94
    Ù %C3%99
    Û %C3%9B
    à %C3%A0
    â %C3%A2
    ç %C3%A7
    è %C3%A8
    é %C3%A9
    ê %C3%AA
    ë %C3%AB
    î %C3%AE
    ï %C3%AF
    ô %C3%B4
    ù %C3%B9
    û %C3%BB
    ' &#39;
    & &amp;


    0
    1. masal
       
      merci beaucoup
      excuser pour je vais vous embêtez un peu mais je n'ai pas bien compris le programme surtout cette ligne [ car.append((ligne[0:1],ligne.rstrip('\n')[2:])) ] si vous pouvez et si c'est possible d'ajouter des commentaires , et merci beaucoup
      0
      1. jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention   9 981 > masal
         
        Le fichier contient, nouveau caractère, ancien caractère. Il est structuré ainsi car le nouveau caractère fait toujours une position, l'ancien ayant une longueur n. Pour toi ce devrait être ancien, nouveau puisque tu veux convertir un caractère en 3.

        car.append((ligne[0:1],ligne.rstrip('\n')[2:])) ]
        j'ajoute au tableau car, le tuple(nouveau,ancien) en découpant la ligne du fichier, le premier caractère, puis à compter de la position 2 jusqu'à la fin en supprimant le caractère fin de ligne (\n)

        Après je traite la chaine du nom de fichier, en faisant une boucle pour traiter tous les caractères du tableau car[] et remplacer l'ancienne valeur par la nouvelle
        0
      2. masal > jee pee Messages postés 9444 Date d'inscription   Statut Modérateur Dernière intervention  
         
        je vous remercie pour votre explication , j'ai bien compris maintenant
        0