2012-05-04 13 views
1

在蟒蛇,如果我想從多個文件讀取,可我做類似下面?:文件在列表

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

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

回答

2

是的......但是,你應該處理的readlines()返回值。

1

爲了正確地做到這一點,你應該這樣做:

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

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

這是因爲你正在做的方式,讓蟒蛇嘗試在打開'i'代替i的價值循環。

但是,這種方式並不是最佳的,但它是最簡單的解決方案。

+0

爲什麼str(i)? f.readlines()的結果會怎麼樣? –

+0

您使用str(i),因爲您正在使用for循環中的變量i,而不是從未更改的字符串i。但是,如果文件列表中的所有內容都是一個字符串,那麼只需將我放在沒有str() –

+0

如果列表是一個文件列表,它可能意味着是字符串,因此不需要'str'。而且我不確定我看到「i'永遠不會改變」的意思。 –