Lorsque vous traitez plusieurs fichiers texte, le besoin de les concaténer en un seul fichier se pose souvent. Bien que l'utilisation de l'approche ligne par ligne avec les méthodes open(), readline() et write() puisse sembler simple, elle manque d'élégance.
Python propose des méthodes plus sophistiquées pour cette tâche. Considérez les approches suivantes :
Pour les fichiers volumineux :
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: for line in infile: outfile.write(line)
Cette méthode parcourt chaque fichier, lisant et écrivant des lignes de manière séquentielle. C'est efficace pour les gros fichiers.
Pour les petits fichiers :
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for fname in filenames: with open(fname) as infile: outfile.write(infile.read())
Pour les fichiers plus petits, cette approche lit l'intégralité du contenu de chaque fichier en même temps, réduisant ainsi le nombre des opérations sur les fichiers.
Une alternative utilisant itertools :
filenames = ['file1.txt', 'file2.txt', ...] with open('path/to/output/file', 'w') as outfile: for line in itertools.chain.from_iterable(itertools.imap(open, filnames)): outfile.write(line)
Cette méthode utilise le module itertools pour parcourir les lignes de plusieurs fichiers comme s'il s'agissait d'une seule liste. C'est moins efficace en termes de mémoire, mais peut être considérée comme une approche intrigante.
En employant ces techniques plus élégantes, vous pouvez concaténer des fichiers texte en Python avec plus de facilité et d'efficacité, en répondant à des scénarios impliquant à la fois des fichiers grands et petits.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!