2017-02-08 18 views
0

ファイルの内容を特定のキーの複数の値に格納することを検討しようとしています。テキストファイルを読み込んで辞書に保存する

所望の出力:

{'city1':[Island-1,Island-3],'city2':[Island-2,Island-4]} 

data.txtを

city1-south:"London" 
city1-south:"Paris" 
city1-north:"Amsterdam" 
city1-north:"Island-1" 
city2-south:"Island-2" 
city1-east:"Island-3" 
city2-west:"Island-4" 


def readFile(data_file): 
    data = open(data_file,"r") 
    d = {} 
    for line in data: 
     if 'Island' in line: 
      city,loc = line.rstrip("\n").split(":",1) 
      d[city] = loc 
    print (d) 
    data.close() 

data_file = "data.txt" 
readFile(data_file) 

電流出力:

{'city2-south': '"Island-2"', 'city2-west': '"Island-4"', 'city1-east': '"Island-3"', 'city1-north': '"Island-1"'} 

答えて

0

config_fileが定義されていないので、私は今、あなたのコードを実行することはできません。私はあなたのコードを実行できるようにいくつかの変更を加えました。

with open("data.txt") as data: 
    d = {'city1': [], 'city2': []} 
    for line in data: 
     if 'Island' in line: 
      city,loc = line.rstrip("\n").split(":",1) 
      for key in d.keys(): 
       if key in city: 
        d[key].append(loc[1:-1]) 
print(d) 

結果:そうでない場合、Pythonは変数として扱うことになるので、

{'city1': ['Island-1', 'Island-3'], 'city2': ['Island-2', 'Island-4']} 

島-1などの場合は、noly辞書内の文字列として出力することができます。

+0

返信いただきありがとうございます。それは完全に動作します。 – Balen

関連する問題