[linux-leman] enlever des doublons

Christian Kaenzig christian at becool.ch
Thu Apr 24 22:38:23 CEST 2003


On Friday 25 April 2003 00:22, hatim wrote:
> maintenant , j ai un fichier texte avec plein de lignes et des fois la meme
> ligne est repeté 2 fois de suite l'une apres l autre
>
> y a til un moyen avec un script de supprimer le doublon ?

Oh sûrement, on va voir ça :-)

> (..)
>
> les deux lignes 1 et 5 sont doubles , comment faire pour supprimer la 2 et
> 6 plus generalement , le but du jeux est de pouvoir faire ca sur un gros
> fichier

dst_file = open("destination.txt",'w')
last = None
for line in open("source.txt",'r').readlines()
    if last != line:
        dst_file.write(line)
        last = line
dst_file.close()

Bon, premièrement on ne travaille pas sur le fichier d'origine ce qui peut 
peut-être poser problème si le fichier est TRES gros. Deuxièmement, on garde 
ici une seule fois les lignes identiques qui se suivent même si il y en a 
plus que deux.

Si on veut supprimer au max une ligne sur deux, il faut ajouter deux petites 
lignes :

dst_file = open("destination.txt",'w')
last = None
for line in open("source.txt",'r').readlines()
    if last != line:
        dst_file.write(line)
        last = line
    else:
        last = None
dst_file.close()

> Merci encore

Mais de rien :) !

Bye,
Christian



More information about the gull mailing list