python_文件操作实例:有一个嵌套字典的列表,先将key取出来写入文档的第一行,再将列表中的每个字典的value值追加写入文档的第二行、第三行

有以下数据来自于一个嵌套字典的列表(可自定义这个列表),例如:
person_info = [{“name”:“草草”, “age”: 18, “gender”: “男”, “hobby”: “假正经”, “motto”: “I am yours”} , … 其他]

创建一个txt文本文件,来添加数据
a.第一行添加如下内容:name,age,gender,hobby,motto
b.从第二行开始,每行添加具体用户信息,例如:草草,17,男,假正经, I am yours
cainiao,18,女,看书,Lemon is best!

person_info = [{"name": "草草", "age": 18, "gender": "男",
                "hobby": "假正经", "motto": "I am yours"},
               {"name": "小花", "age": 19, "gender": "女",
                "hobby": "真正经", "motto": "hehe"},
               {"name": "小草", "age": 20, "gender": "女",
                "hobby": "上天", "motto": "haha"}]

def write_file(file_name, list_person_info):

    #第一步、 写入第一行的,元素是字典的key值
       # 1、先得到key的值然后将其转换成字符串
    n_lis = list(list_person_info[0].keys()) #['name', 'age', 'gender', 'hobby', 'motto']

       # 2、 将得到的列表连接成字符串:
    n_str = ','.join(n_lis)  # n_str= 'name,age,gender,hobby,motto'
       #3、 写入n_str
    with open(file_name, mode='w', encoding='utf8') as f:
        f.write(n_str)

    #第二步、 写入后面的行,元素是字典的value值
    for i in list_person_info:  #i是person_info中的字典
        # 1、依次得到每个字典的value,并且转换成列表
        li = list(i.values())
        # print(li)

        #2、将得到的value列表拼接成字符串
        n_str = li[0]
        for j in range(len(i) - 1):  #2、将得到的列表
            n_str = n_str + ',' + str(li[j + 1]) #由于age是int型,转换成str才能和字符串相加
        #3、写入
        with open(file_name, mode='a', encoding='utf8') as f:
            f.write('\n') #追加之前先换行
            f.write(n_str)

#读取
def read_file(file_name):
    with open(file_name, encoding='utf8') as f:
        print(f.read())

#函数调用:
write_file('file1.txt', person_info)
read_file('file1.txt')

写入的文件:
python_文件操作实例:有一个嵌套字典的列表,先将key取出来写入文档的第一行,再将列表中的每个字典的value值追加写入文档的第二行、第三行_第1张图片

读取结果:
python_文件操作实例:有一个嵌套字典的列表,先将key取出来写入文档的第一行,再将列表中的每个字典的value值追加写入文档的第二行、第三行_第2张图片

你可能感兴趣的:(python)