Permiteți-mi să încep direct întrebându-mă, chiar avem nevoie de Python să citească fișiere text mari? Nu ar fi suficient editorul nostru de text sau editorul de text pentru asta? Când menționez mare aici, vreau să spun extrem fișiere mari!
Să vedem niște dovezi cu privire la faptul dacă vom avea nevoie de Python pentru citirea unor astfel de fișiere sau nu.
Pentru a realiza experimentul nostru, avem nevoie de un fișier text extrem de mare. În acest tutorial, vom obține acest fișier de pe site-ul UCSC Genome Bioinformatics descărcări. Dosarul pe care îl vom folosi în special este hg38.fa.gz
fișier, care, așa cum este descris aici, este:
Secvență de asamblare "mascată" într-un singur fișier. Repetările din RepeatMasker și Tandem Repeats Finder (cu o perioadă de 12 sau mai puțin) sunt afișate cu majuscule; secvența care nu se repetă este prezentată în majuscule.
Nu vreau să vă faceți griji dacă nu ați înțeles declarația de mai sus, deoarece este legată de terminologia genetică. Ceea ce contează în acest tutorial este conceptul de a citi fișiere text extrem de mari folosind Python.
Continuați și descărcați hg38.fa.gz
(vă rugăm să fiți atenți, fișierul este de 938 MB). Puteți utiliza 7-zip pentru a dezarhiva fișierul sau orice alt instrument pe care îl preferați.
După ce dezarhivați fișierul, veți primi un fișier numit hg38.fa
. Redenumiți-o hg38.txt
pentru a obține un fișier text.
Ceea ce vreau să spun aici prin modul tradițional este utilizarea procesorului nostru de text sau a editorului de text pentru a deschide fișierul. Să vedem ce se întâmplă atunci când încercăm să facem asta.
Am încercat mai întâi să folosesc Microsoft Word pentru a deschide fișierul și am primit următorul mesaj:
Deși deschiderea fișierului nu a funcționat, de asemenea, utilizând WordPad și Notepad pe o mașină bazată pe Windows, sa deschis utilizând TextEdit pe un Mac OS X machine.
Dar veți obține un punct și dacă aveți un fel garantat de a deschide astfel de fișiere extrem de mari ar fi o idee bună. În acest sfat rapid, vom vedea cum să facem asta folosind Python.
În această secțiune, vom vedea cum putem citi fișierul nostru mare folosind Python. Să presupunem că am vrut să citim primele 500 de linii din fișierul nostru text mare. Putem face pur și simplu următoarele:
input_file = open ('hg38.txt', 'r') output_file = deschide ('output.txt', 'w') pentru liniile din intervalul 500. line_input_file.readline_ output_file.write
Observați că citim 500 de linii hg38.txt
, line după linie și a scris acele linii într-un fișier text nou output.txt
, care ar trebui să arate așa cum se arată în acest fișier.
Dar să spunem că am vrut să navigăm direct prin fișierul text fără să îl extragem cu linie și să îl trimitem unui alt fișier text, mai ales că acest mod pare mai flexibil.
Deși pasul de mai sus ne-a permis să citim fișiere text mari prin extragerea liniilor din acel fișier mare și trimiterea acelor linii către alt fișier text, navigarea directă prin fișierul mare fără a fi necesară extragerea liniei de linie ar fi o idee preferabilă.
Putem pur și simplu face acest lucru folosind Python pentru a citi fișierul text prin ecranul terminal după cum urmează (navigarea prin fișier 50 de linii la un moment dat):
input_file = open ('hg38.txt', 'r') în timp ce (1): pentru liniile din intervalul (50): print_input_file.readline () user_input = raw_input ') dacă user_input ==' STOP ': break
După cum puteți vedea din acest script, acum puteți citi și naviga prin fișierul text mare folosind terminalul. Ori de câte ori doriți să renunțați, trebuie doar să tastați STOP
(sensibile la litere mici) în terminalul dvs..
Sunt sigur că veți observa cât de netedă este Python pentru a naviga printr-un astfel de fișier text extrem de mare fără a avea probleme. Python se dovedeste din nou ca este o limba care se straduieste sa ne faca viata mai usoara!