2017-09-03 19 views
-1

にテキストファイルを変換しますか?は、私は、この形式のテキストファイルを持っている辞書

  1. を開き、それ
  2. チェックすると、文字列s =辞書、それがある場合
  3. 、文字列s内の任意のキー=前述のキーにリンクされたオブジェクト。
  4. そうでない場合、何も起こりません。
  5. ファイルが閉じます。

次のコードをカンマで区切ってみましたが、出力が正しくありませんでした。それは効果的にそれを複製し、単一のキーと1つのオブジェクトにテキストファイルにキーとオブジェクトの組み合わせを作った:

コード:

file = open("foo.txt","r") 
dict = {} 

for line in file: 
    x = line.split(",") 
    a = x[0] 
    b = x[0] 
    dict[a] = b 

誤った出力:

key:object, key:object 
key2:object2, key2:object2 
key3:object3, key3:object3 

はありがとう

+0

何を試しましたか?あなたはどんな問題に遭遇しましたか? – Carcigenicate

+0

@Carcigenicate申し訳ありません。 –

+0

キーと値を区切るには、コロンで分割する必要があります。また、なぜaとbを同じ要素に代入していますか?カンマで分割することは、 'for line in file:'をすでに使っているので必要ではないようです。 – Carcigenicate

答えて

0
m={}        
for line in file: 
    x = line.replace(",","")  # remove comma if present 
    y=x.split(':')    #split key and value 
    m[y[0]] = y[1] 
0
# -*- coding:utf-8 -*- 
key_dict={"key":'',"key5":'',"key10":''} 
File=open('/home/wangxinshuo/KeyAndObject','r') 
List=File.readlines() 
File.close() 
key=[] 
for i in range(0,len(List)): 
    for j in range(0,len(List[i])): 
     if(List[i][j]==':'): 
      if(List[i][0:j] in key_dict): 
       for final_num,final_result in enumerate(List[i][j:].split(',')): 
        if(final_result!='\n'): 
         key_dict["%s"%List[i][0:j]]=final_result 

print(key_dict) 

私はあなたが1以下に似oneliner一部で辞書にあなたのファイルの内容を変換することができます「/ホーム/ wangxinshuo/KeyAndObject」に

0

をあなたのファイルを使用しています:あなたがしたい場合には

result = {k:v for k,v in [line.strip().replace(",","").split(":") for line in f if line.strip()]} 

を辞書の値はstripped、ちょうど追加するv.strip()

関連する問題