从dat文件创建字典

时间:2017-03-28 01:23:40

标签: python dictionary

我正在尝试构建管理您的手机通讯录的程序,即。允许您打印联系人,搜索联系人,添加联系人,删除联系人等。程序应根据存储在dat文件中的数据创建字典,格式如下:

alex smith,646-528-3280,jsmith @ stern.nyu.edu

jane doe,347-238-3220,jgonzalez @ stern.nyu.edu

...

基于此,我想在Python中创建一个字典,其中键是一个包含名称的字符串,相应的值是一个包含两个字符串的列表:[电话号码,电子邮件地址]。

任何帮助将不胜感激!我刚刚开始学习Python并且是一个总菜鸟:/

2 个答案:

答案 0 :(得分:2)

您可以逐行读取文件,将每行拆分为3个字段,然后创建字典:

d = {}
with open("mydatafilename", 'r') as f:
    lines = f.readlines()
    for line in lines:
        fields = line.split(',')
        d[fields[0]] = fields[1:]

答案 1 :(得分:0)

您可以在集合中使用python中的defaultdict来创建具有不同类型值的dict数据结构。

#!/usr/bin/python

from collections import defaultdict
from pprint import pprint

store = defaultdict(list)

with open('test.dat', 'r') as FH:
    for file in FH.readlines():
        line = file.strip()
        try:
            name,phone,email = line.split(',')
        except ValueError, err:
            print "Record: ", line
            raise Exception("Failed while unpacking. Not enough arguments to supply.")
        store[name].extend([phone,email])

pprint(store)

这是一个样本。