Python如何在while循环中实现txt文件的打开与编辑操作
问题根源
- 缩进错误:
if inp == 1分支完全写在while循环外面,只有输入3退出循环后才会执行判断,循环运行期间不会触发任何选项对应的逻辑 - 文件指针偏移:你在代码开头已经遍历读取了一次文件内容,文件指针停在文件末尾,后续再读取同一个文件对象不会返回任何内容
- 输出逻辑错误:直接
print(f)打印的是文件对象的内存地址,不是文件的文本内容
while True: print("1 - 展示书籍, 2 - 添加书籍, 3 - 退出程序") inp = input("请选择操作选项:") inp = int(inp) if inp == 1: with open("Books.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip()) elif inp == 2: new_book = input("请输入需要添加的书籍名称:") with open("Books.txt", "a", encoding="utf-8") as f: f.write(new_book + "\n") elif inp == 3: print("程序已退出") break
改动说明
- 所有选项判断逻辑移到while循环内部,每次用户输入后立即执行对应操作
- 采用
with open语法管理文件资源,无需手动调用close方法,避免资源泄漏 - 每次触发展示操作时重新打开文件,既解决了文件指针偏移问题,也能保证每次展示的是最新修改后的文件内容
- 补充了添加书籍的基础实现,可直接使用
内容的提问来源于stack exchange,提问作者Aiden Lumpkins
相关产品推荐
相关产品推荐

