Consejo rápido Cómo leer archivos de texto extremadamente grandes con Python

Permítame comenzar directamente preguntando: ¿realmente necesitamos que Python lea archivos de texto grandes? ¿No sería suficiente nuestro procesador de textos o editor de texto para eso? Cuando menciono grande aquí, quiero decir extremadamente archivos grandes!

Bueno, veamos algunas pruebas de si necesitaríamos Python para leer tales archivos o no.

Obteniendo el archivo

Para llevar a cabo nuestro experimento, necesitamos un archivo de texto extremadamente grande. En este tutorial, obtendremos este archivo del sitio web de descargas de UCSC Genome Bioinformatics. El archivo que usaremos en particular es el hg38.fa.gz archivo, que como se describe aquí, es:

Secuencia de ensamblaje "enmascarado suave" en un archivo. Las repeticiones de RepeatMasker y el buscador de repeticiones en tándem (con un período de 12 o menos) se muestran en minúsculas; secuencia no repetitiva se muestra en mayúsculas.

No quiero que se preocupe si no entendió la declaración anterior, ya que está relacionada con la terminología de Genética. Lo que importa en este tutorial es el concepto de leer archivos de texto extremadamente grandes con Python.

Adelante y descarga hg38.fa.gz (Por favor tenga cuidado, el archivo es de 938 MB). Puedes usar 7-zip para descomprimir el archivo, o cualquier otra herramienta que prefieras.

Después de descomprimir el archivo, obtendrá un archivo llamado hg38.fa. Renombrarlo a hg38.txt para obtener un archivo de texto.

Abriendo el archivo a la manera tradicional

Lo que quiero decir aquí por la forma tradicional es usar nuestro procesador de textos o editor de texto para abrir el archivo. A ver qué pasa cuando intentamos hacer eso..

Primero intenté usar Microsoft Word para abrir el archivo y recibí el siguiente mensaje:

Aunque abrir el archivo tampoco funcionó con WordPad y Notepad en una máquina con Windows, sí se abrió con TextEdit en una máquina con Mac OS X.

Pero entiendes el punto, y tener una forma garantizada de abrir archivos tan grandes sería una buena idea. En este consejo rápido, veremos cómo hacerlo usando Python.

Leyendo el archivo de texto usando Python

En esta sección, veremos cómo podemos leer nuestro archivo grande usando Python. Digamos que queríamos leer las primeras 500 líneas de nuestro gran archivo de texto. Simplemente podemos hacer lo siguiente:

input_file = open ('hg38.txt', 'r') output_file = open ('output.txt', 'w') para líneas en el rango (500): line = input_file.readline () output_file.write (line)

Note que leemos 500 líneas de hg38.txt, línea por línea, y escribió esas líneas en un nuevo archivo de texto output.txt, que debe verse como se muestra en este archivo.

Pero digamos que queríamos navegar directamente a través del archivo de texto sin extraerlo línea por línea y enviarlo a otro archivo de texto, especialmente porque de esta manera parece más flexible.

Navegando a través de grandes archivos de texto

Aunque el paso anterior nos permitió leer archivos de texto grandes extrayendo líneas de ese archivo grande y enviándolas a otro archivo de texto, sería una idea preferible navegar directamente a través del archivo grande sin la necesidad de extraerlo línea por línea..

Simplemente podemos hacer eso usando Python para leer el archivo de texto a través de la pantalla del terminal de la siguiente manera (navegando a través del archivo 50 líneas a la vez):

input_file = open ('hg38.txt', 'r') while (1): para líneas en el rango (50): imprime input_file.readline () user_input = raw_input ('Escribe STOP para salir, de lo contrario, presiona la tecla Enter / Return ') si user_input ==' STOP ': break

Como puede ver en este script, ahora puede leer y navegar a través del gran archivo de texto inmediatamente usando su terminal. Cuando quiera dejar de fumar, solo necesita escribir DETENER (mayúsculas y minúsculas) en su terminal.

Estoy seguro de que te darás cuenta de lo suave que Python hace que navegue a través de un archivo de texto tan grande sin tener ningún problema. Python está demostrando nuevamente que es un lenguaje que se esfuerza por hacer nuestras vidas más fáciles!