Astuce Comment lire des fichiers texte extrêmement volumineux avec Python

Permettez-moi de commencer directement en vous demandant si nous avons vraiment besoin de Python pour lire de gros fichiers texte. Notre traitement de texte ou éditeur de texte habituel ne suffirait-il pas à cela? Quand je parle de gros ici, je veux dire extrêmement gros fichiers!

Voyons maintenant si nous aurons besoin de Python pour lire de tels fichiers ou non..

Obtention du fichier

Pour mener à bien notre expérience, nous avons besoin d’un fichier texte extrêmement volumineux. Dans ce didacticiel, nous obtiendrons ce fichier à partir du site Web de téléchargement de UCSC Genome Bioinformatics. Le fichier que nous utiliserons en particulier est le hg38.fa.gz Le fichier, qui comme décrit ici, est:

Séquence d'assemblage "à masque souple" dans un fichier. Les répétitions à partir de RepeatMasker et de Tandem Repeats Finder (avec une période de 12 ou moins) sont affichées en minuscule; la séquence non répétée est indiquée en majuscule.

Je ne veux pas que vous vous inquiétiez si vous ne compreniez pas la déclaration ci-dessus, car elle est liée à la terminologie de la génétique. Ce qui compte dans ce didacticiel, c'est le concept de lecture de fichiers texte extrêmement volumineux à l'aide de Python..

Allez-y et téléchargez hg38.fa.gz (soyez prudent, le fichier est de 938 Mo). Vous pouvez utiliser 7-zip pour décompresser le fichier ou tout autre outil de votre choix..

Après avoir décompressé le fichier, vous obtiendrez un fichier appelé hg38.fa. Renommez le en hg38.txt obtenir un fichier texte.

Ouvrir le fichier de manière traditionnelle

Ce que je veux dire ici par la manière traditionnelle utilise notre logiciel de traitement de texte ou notre éditeur de texte pour ouvrir le fichier. Voyons ce qui se passe quand nous essayons de le faire.

J'ai d'abord essayé d'utiliser Microsoft Word pour ouvrir le fichier et j'ai reçu le message suivant:

Bien que l’ouverture du fichier ne fonctionne pas également avec WordPad et Notepad sur une machine Windows, elle s’est ouverte avec TextEdit sur une machine Mac OS X.

Mais vous comprenez le problème, et avoir un moyen garanti d’ouvrir des fichiers aussi volumineux serait une bonne idée. Dans cette astuce, nous verrons comment faire cela en utilisant Python.

Lecture du fichier texte à l'aide de Python

Dans cette section, nous allons voir comment lire notre fichier volumineux avec Python. Disons que nous voulions lire les 500 premières lignes de notre fichier texte volumineux. Nous pouvons simplement faire ce qui suit:

fichier_entrée = open ('hg38.txt', 'r') fichier_sortie = open ('output.txt', 'w') pour les lignes situées dans la plage (500): line = fichier_entrée.readline () fichier_sortie.write (ligne)

Notez que nous lisons 500 lignes de hg38.txt, ligne par ligne, et écrit ces lignes dans un nouveau fichier texte output.txt, qui devrait ressembler à ce qui est montré dans ce fichier.

Mais disons que nous voulions naviguer directement dans le fichier texte sans l'extraire ligne par ligne et l'envoyer dans un autre fichier texte, d'autant plus que cette méthode semble plus flexible.

Navigation dans des fichiers texte volumineux

Bien que l'étape ci-dessus nous ait permis de lire des fichiers texte volumineux en extrayant des lignes à partir de ce fichier volumineux et en les envoyant dans un autre fichier texte, il serait préférable de naviguer directement dans le fichier volumineux sans qu'il soit nécessaire de l'extraire ligne par ligne..

Nous pouvons simplement le faire en utilisant Python pour lire le fichier texte à travers l’écran du terminal comme suit (navigation dans le fichier 50 lignes à la fois):

input_file = open ('hg38.txt', 'r') while (1): pour les lignes comprises dans l'intervalle (50): print input_file.readline () user_input = raw_input ('Tapez STOP pour quitter, sinon appuyez sur la touche Entrée / Retour ') si user_input ==' STOP ': pause

Comme vous pouvez le constater à partir de ce script, vous pouvez maintenant lire et naviguer dans le fichier texte volumineux immédiatement à l'aide de votre terminal. Chaque fois que vous voulez arrêter, il vous suffit de taper ARRÊTEZ (sensible à la casse) dans votre terminal.

Je suis sûr que vous remarquerez à quel point Python est fluide et permet de naviguer dans un fichier texte aussi volumineux sans aucun problème. Python se révèle à nouveau comme un langage qui s'efforce de rendre notre vie plus facile!