2012-06-20 158 views
-2

這是一個程序,我想在python運行的一部分,但它給了我一個KeyError在該行:KeyError異常在Python

def xi_group_prep(infile=os.environ ['GAMA_DATA'] + '/groups/G3Cv04/G3CFoFGroup194v04.dat' 

代碼:

def xi_mass_samples(infile='/export/scratch/loveday/gama/stellarMasses/StellarMassesPlus.fits', 
        ranfile='/export/scratch/loveday/gama/mask/mass_randoms_194.dat',): 
    """ 
    Create mass sub-samples for xi(s). 
    """ 
    Mlimits = (5, 9.5, 10, 10.5, 11, 11.5, 15) 
    for i in range(len(Mlimits)-1): 
     Mlo = Mlimits[i] 
     Mhi = Mlimits[i+1] 
     galout = 'gal_lgm' + str(Mlo) + '_' + str(Mhi) + '.dat' 
     ranout = 'ran_lgm' + str(Mlo) + '_' + str(Mhi) + '.dat' 
     xi_select(infile, 
        ranfile=ranfile, 
        galout=galout, ranout=ranout, 
        zrange=(0.002, 0.5), nz=50, 
        appMin=14, appMax=19.4, lgmMin=Mlo, lgmMax=Mhi) 

def xi_group_prep(infile=os.environ ['GAMA_DATA'] + '/groups/G3Cv04/G3CFoFGroup194v04.dat', 
        ranfile='/export/scratch/loveday/gama/mask/mass_randoms_194.dat', 
        galout='group.dat', ranout = 'ran_group.dat', 
        zrange=(0.002, 0.5), lgmMin=5, lgmMax=15, 
        appMin=14, appMax=19.4, absMin=-30, absMax=12): 
+0

第一行是追溯?似乎'GAMA_DATA'未在os.environ中設置 – yedpodtrzitko

+0

請提供完整的錯誤回溯。 –

+0

#關於範圍的一些愚蠢的評論(len(Mlimits)) - 我應該很好地閱讀代碼。 – Gandi

回答

1

由於錯誤消息可能表明,os.environ沒有密鑰'GAMA_DATA',因此在嘗試訪問它時會給出KeyError。請注意,默認參數是在函數定義時評估的,所以此時此鍵必須存在。