Αφαίρεση διπλότυπων εγγραφών από ένα αρχείο με python
Χρειάστηκε πρόσφατα να καθαρίσω ένα αρχείο από διπλότυπες εγγραφές το οποίο ήταν τεράστιο . Σίγουρα υπάρχουν άπειροι τρόποι να κάνεις κάτι τέτοιο . Με 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 .
Καλό καλοκαίρι σε όλους !