2016-12-01 6 views
0

だから私はこのような何かをフォーマットされたファイルを持っている:インスタンスの作成

名:トビー・リマ
DOB:12/12/12
ペイ:50000

名:ユーザーインターフェイス
DOB:11/11/11
ペイ:60000

だから私は基本的に各ラインを読み、関連する情報を抽出して、従業員instancを作成する必要があります私はリストに追加します。空白行は、新しい従業員の開始を示します。だから私は各従業員のための別々のインスタンスを作成する必要があります。私はそれを達成するために私のコードで何が修正される必要があるのか​​よくわかりません。ソリューションで

私の試み:

temp =[] 

    with open(path, mode='r', encoding='utf-8-sig') as file: 

     for line in file: 

      if line != '\n': 
       temp.append([value for value in line.strip().split(':')[1:]]) 

      else: break 

答えて

0

従業員は空きスペースで区切られているので、あなたは二重の新しい行にデータを分割することができます。

with open(path, 'r') as o : 
    data = o.read().split('\n\n') 
    print(data) 
    >>> ['Name:Toby Lima\nDOB: 12/12/12\nPay:50000', 'Name:User Interface\nDOB:11/11/11\nPay:60000'] 

その後、リストを繰り返して、各従業員の個人を解析することができます。後でデータにアクセスするためのデータを保存するためにdictを使用することをお勧めします。

employees = [] 

#iterates through your data list 
for d in data:   
    #creates a key/value pair with the employee data 
    employees.append(dict([e.split(':') for e in d.split('\n')])) 

print(employees) 
>>> [{'Name': 'Toby Lima', 'DOB': ' 12/12/12', 'Pay': '50000'}, {'Name': 'User Interface', 'DOB': '11/11/11', 'Pay': '60000'}] 
関連する問題