0

次のコードを使用して、データ ディレクトリ内の各ファイルから最大値を計算しようとしています。

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 やプログラミングの経験があまりないので、少し問題があります。実際、私は今学部で使い始めています。

4

1 に答える 1

0

ディレクトリ内のファイルのリストを返す関数の戻り値を使用するときによくある混乱に遭遇しました。

listdirそのディレクトリ内のファイルのリストを返すだけです。それらのファイルへのパスを返すのではなく、ファイル名だけを返します。したがって、操作しているディレクトリが現在のディレクトリでない限り、これは機能しません。現在のディレクトリ内の各ファイルを開こうとしています。

の結果を使用するときはいつでも、listdir作業ディレクトリをそのディレクトリに変更しない場合は、ファイルを開く前にディレクトリ名をファイルに追加し直す必要があります。list_numしたがって、ファイル名だけでなく、ファイルへのフル パスを渡します。

list_num(dir + '/' + n)
于 2013-03-17T03:11:20.660 に答える