Χρειάστηκε πρόσφατα να καθαρίσω ένα αρχείο από διπλότυπες εγγραφές το οποίο ήταν τεράστιο . Σίγουρα υπάρχουν άπειροι τρόποι να κάνεις κάτι τέτοιο . Με python είναι απλά ένα script 5 γραμμών και τρέχει πραγματικά πολύ γρήγορα .
Η λογική είναι ότι αφού ανοίξουμε και διαβάσουμε το αρχικό αρχείο ξεκινάμε και περνάμε την κάθε μία του γραμμή στο καινούριο αρχείο αφού πρώτα κάνουμε έλεγχο πώς δεν υπάρχει .
Παρακάτω μπορείτε να δείτε τον κώδικα :
import sys
inputFile = sys.argv[1]
outputFile = sys.argv[2]
lines_seen = set() # holds lines already seen
outfile = open(outputFile, "w")
for line in open(inputFile, "r"):
if line not in lines_seen: # not a duplicate
outfile.write(line)
lines_seen.add(line)
outfile.close()
Για να το εκτελέσουμε το παραπάνω απλά τρέχουμε την παρακάτω εντολή (έστω ότι το ονομάσαμε removeDuplicates.py)
python removeDuplicates.py input.txt output.txt
Για την ανάγνωση ενός αρχείου 30000 γραμμών χρειάστηκε 10 περίπου δευτερόλεπτα. Σε αυτό το σημείο θέλω να μοιραστώ και μία γκάφα που έκανα και σε περίπτωση που κάποιος αντιμετωπίσει το συγκεκριμένο error καλοκαιριάτικα ίσως είναι σημάδι ότι χρειάζεται όπως και εγώ διακοπές .
Τρέχοντας λοιπόν το παραπάνω script πήρα το παρακάτω μήνυμα λάθους :
$ python names-export.txt out.txt
File "names-export.txt", line 26
Giannis Dimitriadis
^
SyntaxError: invalid syntax
Όπως θα διαπιστώσετε δεν έβαλα το όνομα του script κατά την εκτέλεση noob level 1 .
Καλό καλοκαίρι σε όλους !

