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 :

Supprimer lignes d'un fichier [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut Supprimer lignes d'un fichier
    Bonjour,

    débutant en python, je cherche à supprimer des lignes matchant un mot ou une expression régulière dans un fichier.

    J'ai un fichier que j'ouvre mais comment le parcourir ligne par ligne et zapper (une sorte de next) les lignes qui ont matchés pour les écrire dans un nouveau fichier (si possible de le même en gardant le nom du fichier d'origine je suis preneur.

    J'ai un fichier texte commençant comme ci-dessous ou je cherche à supprimer les 2 premières lignes avec des regex.

    Building configuration…
    Current configuration:
    !
    version 11.2
    no service udp-small-servers
    no service tcp-small-servers
    Les regex je trouverai mais si vous aviez une méthode simple pour le besoin

    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    Dans l'idée en mode perl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    open (my $data, "<", 'data.txt') or die("ouverture fichier impossible: $!");
     
    while(my $ligne = <$data>) {
    	chomp($ligne);
    	next if $ligne =~ /Building/;
    	say $ligne;
    }

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with open("data.txt", 'r') as f:
        for line in f:
            line = line.strip()
            if "Building" in line:
                continue
            print(line)
    à savoir que je n'ai jamais fais de perl, j'interprète selon...

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    Merci pour le retour Fred.

    Le résultat attendu avec le next est de passer directement à la ligne suivante quand ca match. Ca donne ca:

    Current configuration:
    !
    version 11.2
    no service udp-small-servers
    no service tcp-small-servers
    Avec le continue dans le code j'ai toute les lignes qui apparaissent.

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Normalement ça devrait le faire alors... Avez-vous testé ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 198
    Par défaut
    En fait Fred ta solution fonctionne, je n'avais ajouter import re

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer ligne d'un fichier en bash
    Par cycycysisisi dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 26/06/2014, 15h35
  2. Réponses: 5
    Dernier message: 03/05/2011, 11h03
  3. Supprimer ligne dans un fichier text
    Par Gad29 dans le forum Langage
    Réponses: 10
    Dernier message: 23/05/2007, 09h31
  4. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30
  5. Supprimer la premiere ligne d'un fichier
    Par Kahiba dans le forum Langage
    Réponses: 7
    Dernier message: 11/02/2003, 10h18

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