Lassen Sie mich gleich mit der Frage beginnen: Brauchen wir wirklich Python, um große Textdateien lesen zu können? Würde unser normales Textverarbeitungsprogramm oder Texteditor dafür nicht ausreichen? Wenn ich hier groß erwähne, meine ich äußerst große Dateien!
Nun, lassen Sie uns einige Beweise sehen, ob wir Python zum Lesen solcher Dateien benötigen oder nicht.
Um unser Experiment durchzuführen, benötigen wir eine extrem große Textdatei. In diesem Lernprogramm erhalten Sie diese Datei von der UCSC Genome Bioinformatics-Website zum Herunterladen. Die Datei, die wir insbesondere verwenden werden, ist die hg38.fa.gz
Datei, die wie hier beschrieben ist:
"Soft-maskierte" Montagereihenfolge in einer Datei. Wiederholungen von RepeatMasker und Tandem Repeats Finder (mit einem Zeitraum von 12 oder weniger) werden in Kleinbuchstaben angezeigt. Die sich nicht wiederholende Reihenfolge wird in Großbuchstaben dargestellt.
Ich möchte nicht, dass Sie sich Sorgen machen, wenn Sie die obige Aussage nicht verstanden haben, da sie mit der Terminologie von Genetics zusammenhängt. In diesem Tutorial geht es darum, extrem große Textdateien mit Python zu lesen.
Fahren Sie fort und laden Sie herunter hg38.fa.gz
(Bitte seien Sie vorsichtig, die Datei ist 938 MB groß). Sie können 7-zip verwenden, um die Datei oder ein beliebiges anderes Werkzeug zu entpacken.
Nach dem Entpacken der Datei erhalten Sie eine Datei mit dem Namen hg38.fa
. Benennen Sie es in um hg38.txt
um eine Textdatei zu erhalten.
Was ich hier auf traditionelle Weise verstehe, ist die Verwendung unserer Textverarbeitung oder eines Texteditors zum Öffnen der Datei. Mal sehen, was passiert, wenn wir das versuchen.
Ich habe zuerst versucht, Microsoft Word zu verwenden, um die Datei zu öffnen, und erhielt die folgende Meldung:
Das Öffnen der Datei funktionierte zwar nicht mit WordPad und Notepad auf einem Windows-basierten Computer, es wurde jedoch mit TextEdit auf einem Mac OS X-Computer geöffnet.
Aber Sie bekommen den Punkt und es wäre eine gute Idee, solche extrem großen Dateien garantiert zu öffnen. In diesem kurzen Tipp erfahren Sie, wie Sie dies mit Python tun.
In diesem Abschnitt werden wir sehen, wie wir unsere große Datei mit Python lesen können. Nehmen wir an, wir wollten die ersten 500 Zeilen aus unserer großen Textdatei lesen. Wir können einfach folgendes tun:
Eingabedatei = offen ('hg38.txt', 'r') Ausgabedatei = offen ('output.txt', 'w') für Zeilen im Bereich (500): line = Eingabedatei.readline () Ausgabedatei.write (Zeile)
Beachten Sie, dass wir 500 Zeilen lesen hg38.txt
, Zeile für Zeile und schrieb diese Zeilen in eine neue Textdatei output.txt
, die wie in dieser Datei dargestellt aussehen sollte.
Angenommen, wir wollten direkt durch die Textdatei navigieren, ohne sie zeilenweise zu extrahieren und an eine andere Textdatei zu senden, zumal dieser Weg flexibler erscheint.
Obwohl der vorstehende Schritt es uns ermöglichte, große Textdateien zu lesen, indem Zeilen aus dieser großen Datei extrahiert wurden und diese Zeilen an eine andere Textdatei gesendet wurden, wäre das direkte Navigieren durch die große Datei ohne die Notwendigkeit, sie zeilenweise zu extrahieren, eine bevorzugte Idee.
Wir können dies einfach mit Python tun, um die Textdatei wie folgt durch den Bildschirm des Terminals zu lesen (50 Zeilen gleichzeitig durch die Datei navigieren):
input_file = open ('hg38.txt', 'r') while (1): für Zeilen im Bereich (50): print input_file.readline () user_input = raw_input ('Stop drücken, um den Vorgang zu beenden, andernfalls drücken Sie die Eingabetaste ') Wenn user_input ==' STOP ': break
Wie Sie diesem Skript entnehmen können, können Sie jetzt die große Textdatei sofort mit Ihrem Terminal lesen und darin navigieren. Wann immer Sie abbrechen möchten, müssen Sie nur noch tippen HALT
(case sensitive) in Ihrem Terminal.
Ich bin mir sicher, dass Sie feststellen werden, wie reibungslos Python das Navigieren durch eine so große Textdatei ermöglicht, ohne dass Probleme auftreten. Python erweist sich erneut als eine Sprache, die unser Leben leichter machen soll!