IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Remplacer une partie de chaine lecture fichier


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Remplacer une partie de chaine lecture fichier
    Bonjour à tous,

    débutant en python, je suis en cours de réalisation d'un petit programme pour lire un fichier et pour un certain type de ligne, remplacer certaines valeurs dans une partie de la ligne.

    Voici en exemple la ligne du fichier sur lequel je dois procéder au traitement, j'ai mis en gras les données que je dois modifier:
    DES|0000001|07000|999999999900007|ZZZLAND DSDSDSDSDS |

    Comment modifier uniquement les zones en gras ? Car actuellement, lorsque je remplace les "000" par "999", il me met des 9 partout où il y des 0. J'ai compris mon erreur avec replace, j'utilise cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    modif_1 = line.replace(line[28:31],'999')
    et je viens de comprendre que ça remplace dans toute la ligne la valeur se trouvant de la position 28 à 31 par '999'. Or, ce que je souhaite, c'est remplacer uniquement les valeurs de la position 28 à 31 par 999.

    Pouvez-vous m'aiguiller ?

    Merci.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Si tu es toujours sûr que les données sont à la même place alors tu peux reconstruire la ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> l = "DES|0000001|07000|999999999900007|ZZZLAND DSDSDSDSDS |"
    >>> l1 = l[:28] + "999" + l[31:]
    >>> l1
    'DES|0000001|07000|999999999999907|ZZZLAND DSDSDSDSDS |'

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    C'est parfait. Merci.

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/02/2015, 09h34
  2. Réponses: 2
    Dernier message: 10/02/2014, 10h24
  3. Comment remplacer une partie de chaine ?
    Par malabarbe dans le forum Langage
    Réponses: 9
    Dernier message: 30/10/2009, 02h32
  4. [E-02] Remplacer une partie de chaine de caractère par une autre
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/09/2008, 22h19
  5. Remplacer une PARTIE de chaine de caractères dans un champ
    Par Turlututuchapopointu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/08/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo