2011-09-14 11 views
0

入力ファイルの複数の行を1つの値に解析するための良いパターンがPythonにありますか?アイデアは、単一の色ベクトルオブジェクトと同様にDensityCorrectionにBackgroundColorをを得ることですが、彼らは異なるサイズのものであり、私はしたいとき複数のフィールドをPythonで単色ベクトルに分解する

BackgroundColor_R=0.0 
BackgroundColor_G=0.0 
BackgroundColor_B=0.0 
BackgroundColor_A=0.0 
DensityCorrection_Color_R=1.0 
DensityCorrection_Color_G=1.0 
DensityCorrection_Color_B=1.0 

:たとえば、私は次のようになります入力ファイルを持っています各パラメータの特殊なロジックは避けてください。何か案は?

答えて

0

あなたのデータは、に基づいて設定ファイルの構造と一つに基づいて、2つの自然の表現、1を持っていますプログラム内での使用。 PEP 20 (the Zen of Python)の精神では、あるフォームから別のフォームへの変換は明示的でなければなりません。

BackgroundColor = (float(config['BackgroundColor_R']), 
        float(config['BackgroundColor_G']), 
        float(config['BackgroundColor_B']), 
        float(config['BackgroundColor_A'])) 
0

何か作業をする必要があります(ただし、のConfigParserを使用すると、最初のビットのために良いだろう):

data = {} 

for l in open('input').readlines(): 
    key, value = l.split("=") 
    vector_name = key.split("_")[0] 
    vector = data.get(vector_name,[]) 
    vector.append(value) 
    data[vector_name] = vector 

print data 
関連する問題