有以下数据来自于一个嵌套字典的列表(可自定义这个列表),例如:
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')