2012-05-04 2 views
1

En python, si je voulais lire plusieurs fichiers, que je pouvais faire quelque chose comme ce qui suit ?:fichiers dans une liste

files = [input1.txt, input2.txt, input3.txt] 

for i in files: 
    f = open('i', 'r') 
    f.readlines() 
    f.close() 

Répondre

2

Oui ... Mais vous devez gérer la valeur de retour de readlines().

1

Pour ce faire correctement, vous devriez faire ceci:

files=['input1.txt','input2.txt','input3.txt'] 

for i in files: 
    f=open(str(i),'r') 
    f.readlines() 
    f.close() 

Ceci est parce que la façon dont vous le faites, fait essayer python pour ouvrir 'i' au lieu de la valeur de i dans la boucle.

Cependant, cette manière n'est pas optimale, mais c'est la solution la plus simple.

+0

pourquoi str (i)? Qu'arrive-t-il au résultat de f.readlines()? –

+0

vous utilisez str (i) parce que vous utilisez la variable i de la boucle for, au lieu de la chaîne i qui ne change jamais. Cependant, si tout dans la liste des fichiers est une chaîne, vous pouvez simplement mettre i sans str() –

+0

Si la liste est une liste de fichiers, il est probablement censé être des chaînes, donc pas de 'str 'est nécessaire. Et je ne suis pas sûr de voir ce que vous voulez dire par "je" qui ne change jamais " –

Questions connexes