2016-08-18 3 views
-3

So habe ich eine Textdatei, die innen wie folgt aussieht:Wie doppelte Verknüpfungen in der Textdatei entfernen?

http://example.pl/folder/this_same1.avi 
http://example.pl/folder/this_same1.avi 
http://example.pl/folder/this_same2.avi 
http://example.pl/folder/this_same2.avi 
http://example.pl/folder/this_same3.avi 
http://example.pl/folder/this_same3.avi 

Und ich möchte alle doppelten Links löschen. in die Ausgabedatei sieht wie folgt aus:

http://example.pl/folder/this_same1.avi 
http://example.pl/folder/this_same2.avi 
http://example.pl/folder/this_same3.avi 
+0

'cat/Pfad/zu/Datei | sort -u' –

+0

@NehalJWani Angenommen, OP verwendet Linux ... – DeepSpace

+1

Haben Sie irgendwas versucht? SO ist kein Code-Schreibdienst. – DeepSpace

Antwort

0

Wenn diese Struktur konsistent ist und die Reihenfolge wichtig ist:

links = fp.readlines()[::2] 

Wenn Struktur nicht konsistent ist, und Reihenfolge ist wichtig:

links = [] 
for line in fp.readlines(): 
    if line not in links: 
     links.append(line) 

Dann Datei schreiben.

1

Oh, ich habe meine Antwort verbessert:

with open('file.txt', 'wb') as fp: 
    for line in links: 
     fp.write(line) 

Testen Sie selbst:

links = set() 
with open('file.txt', 'r') as fp: 
    for line in fp.readlines(): 
     links.add(line) 

Dann können Sie in die Datei schreiben zurück ..

+0

Die explizite 'for'-Schleife ist unnötig: 'set (fp.readlines())' reicht aus. Beachten Sie auch, dass dies die Reihenfolge der Zeilen ändern kann (und wahrscheinlich auch ändert). OP kann oder kann nicht damit einverstanden sein. – DeepSpace

+0

Absolut richtig .. – Eric