Python写入文本文件时如何实现用户输入内容换行分隔
问题根因
f.write()方法本身不会自动在写入内容末尾添加换行符,你输入的每一项内容会直接拼接写入,导致所有内容连为一行- 原始代码还存在其他逻辑缺陷:
- 文件打开操作放在
while True循环内部,每次重新填写信息时都会用w模式清空文件,覆盖之前写入的所有内容 - 当你选择继续填写(输入Y/y)时,会直接执行
continue跳过f.close(),导致文件资源没有正常释放
- 文件打开操作放在
修复方法
- 每个
f.write()写入内容后,手动追加换行符\n实现单行显示 - 把文件打开操作移到循环外部,避免每次循环覆盖已有内容
- 推荐使用
with上下文管理器自动管理文件的打开关闭,无需手动调用close,更安全稳定
修改后的可运行代码如下:
# with上下文管理器会在代码块结束后自动关闭文件 with open("Personal details of the students", "w", encoding="utf-8") as f: while True: # 每个写入项末尾加\n实现单独占行 f.write(input("请输入你的姓名: ") + "\n") f.write(input("请输入你的学号: ") + "\n") f.write(input("请输入你的生日: ") + "\n") f.write(input("请输入你的完整地址: ") + "\n") # 如果需要区分多个学生的信息,可以在这里加一行f.write("------\n")做分隔 next_fill = input("是否继续填写?Y|N: ") if next_fill[0] in "Nn": print("感谢填写表单,祝你愉快。") break
内容的提问来源于stack exchange,提问作者JazzBLues
相关产品推荐
相关产品推荐

