Vorrei iniziare direttamente chiedendo, abbiamo davvero bisogno di Python per leggere file di testo di grandi dimensioni? Non sarebbe sufficiente il nostro normale elaboratore di testi o editor di testi? Quando cito grande qui, intendo estremamente file di grandi dimensioni!
Bene, vediamo alcune prove sul fatto che avremmo bisogno di Python per leggere questi file o meno.
Per realizzare il nostro esperimento, abbiamo bisogno di un file di testo estremamente grande. In questo tutorial, otterremo questo file dal sito Web di download di Genome Bioinformatics di UCSC. Il file che useremo in particolare è il hg38.fa.gz
file, che come descritto qui è:
Sequenza di assemblaggio "mascherata soft" in un unico file. Le ripetizioni da RepeatMasker e Tandem Repeats Finder (con periodo di 12 o meno) sono mostrate in minuscolo; la sequenza non ripetitiva è mostrata in maiuscolo.
Non voglio che ti preoccupi se non hai capito la dichiarazione di cui sopra, in quanto è correlata alla terminologia Genetica. Ciò che conta in questo tutorial è il concetto di leggere file di testo estremamente grandi usando Python.
Vai avanti e scarica hg38.fa.gz
(attenzione, il file è 938 MB). Puoi utilizzare 7-zip per decomprimere il file o qualsiasi altro strumento che preferisci.
Dopo aver decompresso il file, riceverai un file chiamato hg38.fa
. Rinominalo in hg38.txt
per ottenere un file di testo.
Quello che intendo qui in modo tradizionale è usare il nostro word processor o text editor per aprire il file. Vediamo cosa succede quando proviamo a farlo.
Per prima cosa ho provato a utilizzare Microsoft Word per aprire il file e ho ricevuto il seguente messaggio:
Sebbene l'apertura del file non abbia funzionato anche con WordPad e Blocco note su un computer basato su Windows, si è aperto usando TextEdit su una macchina Mac OS X.
Ma hai capito il punto, e avere un modo sicuro per aprire file così grandi sarebbe una buona idea. In questo suggerimento, vedremo come farlo usando Python.
In questa sezione, vedremo come possiamo leggere il nostro file di grandi dimensioni usando Python. Diciamo che volevamo leggere le prime 500 righe dal nostro file di testo di grandi dimensioni. Possiamo semplicemente fare quanto segue:
input_file = open ('hg38.txt', 'r') output_file = open ('output.txt', 'w') per le righe nel range (500): line = input_file.readline () output_file.write (riga)
Si noti che leggiamo 500 linee da hg38.txt
, riga per riga e ha scritto quelle righe in un nuovo file di testo output.txt
, che dovrebbe apparire come mostrato in questo file.
Ma diciamo che volevamo navigare direttamente nel file di testo senza estrarlo riga per riga e inviarlo a un altro file di testo, soprattutto perché in questo modo sembra più flessibile.
Sebbene il passaggio precedente ci consentisse di leggere file di testo di grandi dimensioni estraendo le righe da quel file di grandi dimensioni e inviando tali righe a un altro file di testo, la navigazione diretta attraverso il file di grandi dimensioni senza la necessità di estrarla riga per riga sarebbe un'idea preferibile.
Possiamo farlo semplicemente usando Python per leggere il file di testo attraverso lo schermo del terminale come segue (navigando nel file 50 righe alla volta):
input_file = open ('hg38.txt', 'r') while (1): per le righe nel range (50): print input_file.readline () user_input = raw_input ('Tipo STOP per uscire, altrimenti premi il tasto Invio / Ritorna ') se user_input ==' STOP ': interruzione
Come puoi vedere da questo script, puoi ora leggere e navigare attraverso il grande file di testo usando immediatamente il tuo terminale. Ogni volta che vuoi smettere, devi solo digitare STOP
(maiuscole e minuscole) nel tuo terminale.
Sono sicuro che noterai quanto Smooth sia in grado di navigare attraverso un file di testo così grande senza problemi. Python si sta dimostrando di nuovo un linguaggio che cerca di semplificarci la vita!