如何修改Python代码实现运行函数时写入内容到.txt文件并读取
现有代码问题汇总
add函数问题
- 逻辑顺序错误:先执行写入操作再判断是否退出,会把触发退出的关键词
Enter也写入文件 - 冗余操作:
with上下文管理器会在代码块执行完毕后自动关闭文件,额外调用f.close()属于无效操作,部分场景下还会抛出异常 - 写入格式问题:没有添加换行符分隔多条记录,多次输入的内容会拼接成一行,后续无法区分不同联系人信息
- 退出逻辑不合理:仅当输入内容完全等于
Enter时才退出,和输入提示的表述不符,也会导致无法正常保存名为Enter的联系人
read函数问题
- 未自动释放文件资源:没有使用
with上下文管理器操作文件,操作完成后文件对象不会自动关闭,会造成资源泄漏 - 方法未调用:
print(f.read)仅打印read方法本身的内存地址,没有加括号调用方法,无法输出文件实际内容 - 无异常处理:当
Telefon.txt文件不存在时,直接调用函数会抛出FileNotFoundError报错,没有友好提示
修正后代码
def add(): while True: name = input("请输入姓名和号码(直接回车即可退出添加):") # 先判断退出条件,避免无效内容写入 if not name: break with open("Telefon.txt", "a", encoding="utf-8") as f: # 每条记录后加换行符分隔 f.write(f"{name}\n") def read(): try: with open("Telefon.txt", "r", encoding="utf-8") as f: # 调用read方法读取完整内容 print(f.read()) except FileNotFoundError: print("通讯录文件不存在,请先添加联系人记录")
补充说明
如果需要保留原代码输入Enter才退出的逻辑,只需要把add函数里的退出判断条件改为if name == "Enter":即可。
内容的提问来源于stack exchange,提问作者Sondre
相关产品推荐
相关产品推荐

