2017-05-18 3 views
0

ファイルの総数を指定せずにnp.loadを使用してフォルダからすべてのファイルを読み込みたいとします。現在、数回のループの後、インデックスは使用可能なファイルの範囲を使い果たし、コードは終了します。ファイルインデックスが使用可能なファイルのインデックスを超えるまでループnp.load

index = 0 
    while True: 

     a = np.load(file=filepath + 'c_l' + pc_output_layer + '_s0_p' + str(index) + '.npy') 
     layer = np.append(layer, a) 
     index += 1 

エラーが発生してからスクリプトの残りの部分を実行し続けるにはどうすればいいですか?ありがとうございました!

答えて

1

例外をキャッチしてループから抜け出すことができますが、インデックスを使用するのではなく、ファイル名自体をループすることがより難しいです。

ライブラリglobライブラリでは、指定したパターンに一致するファイルを検索してリストを返すことができます。

例えば:

import glob 
files = glob.glob(filepath + 'c_l*.npy') 

for f in files: 
    a = np.load(file=f) 
    layer = np.append(layer, a) 

また、直接、リストの内包表記を使用してレイヤーを作成することによって、さらにそれを簡素化することができます。

+1

常により多くのpythonic方法を支持します。ありがとう! – Sumaku

関連する問題