无法在python的txt文件中写入字典

无法在python的txt文件中写入字典,python,python-3.x,python-3.6,Python,Python 3.x,Python 3.6,我正在尝试制作一个python脚本,用于存储生日并将其存储在一个文本文件中,而不重复相同的姓名和出生日期,但我无法做到这一点。我使用的是python 3.6。我能写,但无法检索。我需要一只手来解决这个问题 生日={} 打开('birth.txt','r')作为文件:#在读取模式下打开txt文件,因为它不支持在追加模式下 file.seek(0) content=file.readlines() 尽管如此: 名称=输入('输入名称:')#询问名称 如果名字在生日: 生日=生日[name]+'是'+

我正在尝试制作一个python脚本,用于存储生日并将其存储在一个文本文件中,而不重复相同的姓名和出生日期,但我无法做到这一点。我使用的是python 3.6。我能写,但无法检索。我需要一只手来解决这个问题

生日={}
打开('birth.txt','r')作为文件:#在读取模式下打开txt文件,因为它不支持在追加模式下
file.seek(0)
content=file.readlines()
尽管如此:
名称=输入('输入名称:')#询问名称
如果名字在生日:
生日=生日[name]+'是'+name+'的生日。'+'\n'
打印(出生日)
以open('birth.txt','a')作为f:#检查它是否已经在文件中
对于内容中的行:
如果内容中包含出生日:
打印(出生日)
f、 关闭()
其他:
print('数据库中没有这样的名称')
打印('是否要将其添加到数据库?')
选择=输入(“”)
if choice=='y':#如果不在文件中,则附加在其上
new_dates=input(“+name+”的生日是什么?”)
生日[姓名]=新日期
new_birthdates=birth[name]+'是'+name+'的生日。'+'\n'
打印(新出生日期)
打开('birth.txt','a')作为fi:
fi.书写(新的出生日期)
fi.close()

写入文件时,请尝试使用“w”而不是a。作为一种手段,当您使用write函数时,您希望将其附加到何处。

感谢您的帮助。你介意再帮我一次吗?我想避免数据冗余。如果文件中有相同的名称,那么我希望它被打印出来,那么我该怎么做呢?好的,你可以使用for循环遍历文件,每次匹配时将其附加到列表中,然后打印列表或列表中你需要的项目。这是怎么做的?我不能做同样的事情。好的,例如:a=[]for I in f.readlines():if I==h:a.append(I)。H是你比较它的对象,a是列表