Trier de gros fichiers avec python

J'ai appris le comportement de subprocess.Popen, alors ne l'oubliez pas.

Lorsque je traite d'énormes fichiers en python, j'utilise très souvent des itérateurs pour effectuer un traitement séquentiel afin de ne pas tout mettre en mémoire. Cependant, la fonction sorted () ne peut pas être utilisée pour des fichiers volumineux. En effet, l'itérateur est converti en liste avant le traitement.

Si vous souhaitez trier un gros fichier, utilisez le tri côté système Unix.


import subprocess
def sorted_file_generator(filename):
    proc = subprocess.Popen(['sort', filename], stdout=subprocess.PIPE)
    while True:    #Recevez ligne par ligne en utilisant while
        line = proc.stdout.readline()
        if line:
            yield line.decode('utf-8').strip()    #Puisque la valeur de retour est un code d'octet, décodez-le
        else:
            break

Cet exemple est python3. Dans le cas de 2, la gestion des octets doit être différente

Recommended Posts

Trier de gros fichiers avec python
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Intégrez des fichiers PDF avec Python
Lire des fichiers .txt avec Python
[Python] Trier
Python #sort
Extraire récursivement des fichiers zip avec python
Manipulation des fichiers EAGLE .brd avec Python
[Python] Fichiers wav POST avec requêtes [POST]
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Trier les gros fichiers texte en Python
Gérer les fichiers Excel CSV avec Python
Lire des fichiers en parallèle avec Python
[Python] Tri Starlin à une ligne avec 50 caractères
Traitez d'énormes fichiers Excel avec Python pour améliorer la productivité
[AWS] Utilisation de fichiers ini avec Lambda [Python]
FizzBuzz en Python3
Grattage avec Python
Lire un fichier audio à partir de Python avec interruption
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Jouez avec 2016-Python
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
AES256 avec python
Testé avec Python
python commence par ()
Lire et écrire des fichiers JSON avec Python
Télécharger des fichiers sur le Web avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
[Easy Python] Lecture de fichiers Excel avec des pandas
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Python] Récupérez les fichiers dans le dossier avec Python
Gérer les fichiers zip avec des noms de fichiers japonais dans Python 3
Faites glisser et déposez un fichier local avec Selenium (Python)
Encodage de caractères lors du traitement de fichiers en Python 3
Télécharger des fichiers sur Google Drive avec Lambda (Python)
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Convertissez plusieurs fichiers proto à la fois avec python
Lire les fichiers wav avec uniquement le package standard Python
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.