2012-12-15 19 views
0

我在python中使用Pybrain(神經網絡庫)進行圖像處理。我在一個目錄中有196個文件,它保存在下面代碼的all_files中。我試圖打開每個文件和做的每個文件處理分開,但它走的所有文件的數據在一個字符串,我想每一個文件打開一個接一個,做加工和輸出 這裏是我的代碼:一個接一個讀取多個文件,並在python中處理

from pybrain.datasets import SupervisedDataSet 
from pybrain.supervised.trainers import BackpropTrainer 
import glob 
ds = SupervisedDataSet(121,121) 

all_files = glob.glob('/home/vidula/Desktop/tp/inpt/./*.data') 
for filename in all_files: 
    indata = tuple() 
    outdata = tuple() 
    with open(filename,'r')as file: 
     for line in file.readlines(): 
      d = line.strip().split(',') 
      indata = indata + (d[0],) 
      outdata = outdata + (d[1],) 
      ds.addSample(indata, outdata) 
print outdata 

有人可以幫我嗎?

+0

你的問題是什麼? – dpk2442

+0

編輯問題並修改縮進以匹配實際代碼 - 例如'for line ...'在'with open(...)'後出現錯誤縮進。也不應該將indata和outdata初始化並在'for filename在循環中,而不是在它完成之前和之後? –

+2

您使用'file'作爲變量名稱,它也是Python內置函數的名稱。最好避免使用Python的名稱內置了你的變量,因爲如果你以後也想使用內置的話,它會導致問題。 – khagler

回答

1

在讀取每個文件之前,需要重置indata和outdata。即

for filename in all_files: 
    indata = tuple() 
    outdata = tuple() 
+0

是的,我完成了,仍然沒有運行代碼。 – shreya

+0

謝謝,它的工作... – shreya

+1

@vids:我知道你是受歡迎的。請選擇並回答此答案。 –

相關問題