2013-03-17 180 views
0

我試圖計算從每個文件的最大在我的數據目錄,用下面的代碼:錯誤2在Python - 沒有這樣的文件或目錄

from os import listdir 

def max_files(dir): 
    l = listdir(dir) 
    for n in l: 
     list_num(n) 

def list_num(file): 
    f = open(file) 
    lines = f.readlines() 
    v=[] 
    for n in lines: 
     for s in n.split(): 
      v.append(float(s)) 
      mx = v[0] 
      maxi=[] 
      for i in v: 
       if i > mx: 
        mx = i 
        maxi.append(mx) 
      continue 
     continue 
    return maxi 

打印MAX_FILES(路徑)

我也檢查了我的路線,這是完全正確的。錯誤是:

f = open(file) 
IOError: [Errno 2] No such file or directory: 'bvp.txt' 

和bvp.txt是我的數據目錄的第一個文件! 我對Python或編程不是很有經驗,所以我有點麻煩,實際上我現在開始在Faculty使用它。

回答

0

當使用返回目錄中文件列表的函數的返回值時,您會遇到一個常見的困惑。

listdir只是返回該目錄中的文件列表。它不會將路徑返回到這些文件,只是文件名。因此,除非您正在操作的目錄是當前目錄,否則這將不起作用;您正試圖打開當前目錄中的每個文件。

每當使用listdir的結果時,如果您不打算將工作目錄更改爲該目錄,則需要在打開文件之前將目錄名稱添加回該文件。因此,將文件的完整路徑傳遞到list_num而不僅僅是文件名:

list_num(dir + '/' + n)