88 votes

Meilleure méthode pour lire des fichiers délimités par des sauts de ligne et supprimer les sauts de ligne?

Je suis en train de chercher la meilleure façon de traiter la suppression des sauts de ligne lors de la lecture de fichiers délimités par des sauts de ligne en Python.

Ce que j'ai élaboré est le code suivant, incluant un code jetable pour tester.

import os

def getfile(filename,results):
   f = open(filename)
   filecontents = f.readlines()
   for line in filecontents:
     foo = line.strip('\n')
     results.append(foo)
   return results

blahblah = []

getfile('/tmp/foo',blahblah)

for x in blahblah:
    print x

0 votes

Que diriez-vous d'utiliser split("/n")?

1 votes

0 votes

Je pense qu'il serait préférable de fermer le fichier également

3voto

S.Lott Points 207588

J'utilise ceci

def nettoyé( unFichier ):
    pour ligne in unFichier:
        yield ligne.strip()

Ensuite, je peux faire des choses comme ça.

lignes = liste( nettoyé( ouvrir("fichier","r") ) )

Ou, je peux étendre nettoyé avec des fonctions supplémentaires pour, par exemple, supprimer les lignes vides ou sauter les lignes de commentaire ou autre.

2voto

Je le ferais comme ça :

f = open('test.txt')
l = [l for l in f.readlines() if l.strip()]
f.close()
print l

0 votes

Tandis que la réponse de Curt Hagenlocher est techniquement meilleure, cette réponse est un bon point de départ si vous devez ajouter d'autres traitements à chaque ligne.

0 votes

Pas sûr que ce soit prévu pour filtrer les lignes vides, mais c'est plus concis que ... si l.strip() n'est pas '', ce qui est ce dont j'ai besoin dans mon cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X