J'ai une liste de 20 noms de fichiers, par exemple ['file1.txt', 'file2.txt', ...]
. Je veux écrire un script Python pour concaténer ces fichiers dans un nouveau fichier. Je pourrais ouvrir chaque fichier par f = open(...)
lu ligne par ligne en appelant f.readline()
et écrire chaque ligne dans ce nouveau fichier. Cela ne me semble pas très "élégant", surtout la partie où je dois lire/écrire ligne par ligne.
Existe-t-il un moyen plus "élégant" de faire cela en Python ?
8 votes
Ce n'est pas python, mais en script shell vous pourriez faire quelque chose comme
cat file1.txt file2.txt file3.txt ... > output.txt
. En python, si vous n'aimez pasreadline()
il y a toujoursreadlines()
ou simplementread()
.1 votes
@jedwards exécutez simplement le
cat file1.txt file2.txt file3.txt
en utilisant la commandesubprocess
et vous avez terminé. Mais je ne suis pas sûr quecat
fonctionne sous Windows.5 votes
À titre d'information, la manière que vous décrivez est une manière terrible de lire un fichier. Utilisez la fonction
with
pour s'assurer que vos fichiers sont fermés correctement, et itérer sur le fichier pour obtenir des lignes, plutôt que d'utiliser l'instructionf.readline()
.0 votes
@jedwards cat ne fonctionne pas lorsque le fichier texte est unicode.
0 votes
Analyse réelle waymoot.org/home/python_string