2017-12-05 11 views
-1

プログラムは関数を呼び出し、ループで1回だけ開きます。どのようにループの中でいつも関数を呼び出せるようにするための解決策はありますか?Pythonを使用してループ内のジェネレータを使用して複数のtxtファイルを読む

def list_spectra(interpolated, txt): 
    return (f for f in listdir(interpolated) if f.endswith("." + txt)) 

wl = [] 
fl = [] 
er = [] 

flux = [] 
error = [] 

med_flux = [] 
med_err = [] 

spectra_all = list_spectra("C:\\..my path here..\\interpolated","txt") 
path = "C:\\..my path here..\\interpolated\\" 

for j in range(0,len(wavelength)): 
    for f in spectra_all: 
     data = np.loadtxt(path+f) 
     for ii in range(0,len(data)): 

      wl = data[:,0] 
      fl = data[:,1] 
      er = data[:,2]  

      for i in range(0,len(wl)): 
       if wl[i] == wavelength[j]: 
        flux.append(fl[i]) 
        error.append(er[i]) 

    med_flux.append(np.median(flux)) 
    med_err.append(np.median(error)) 

答えて

0

はこれを意味するか(私はすべてのjに対して平均):

for j in range(0,len(wavelength)): 
    spectra_all = list_spectra("C:\\..my path here..\\interpolated","txt") 
    for f in spectra_all: 
     data = np.loadtxt(path+f) 
     # etc 
+0

うん!私はこれを意味する:... P時々プログラミングの時間後には明確なものを見ることは困難です..ありがとう! – Vaggelis