You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python写入文本文件时如何实现用户输入内容换行分隔

问题根因
  • f.write()方法本身不会自动在写入内容末尾添加换行符,你输入的每一项内容会直接拼接写入,导致所有内容连为一行
  • 原始代码还存在其他逻辑缺陷:
    • 文件打开操作放在while True循环内部,每次重新填写信息时都会用w模式清空文件,覆盖之前写入的所有内容
    • 当你选择继续填写(输入Y/y)时,会直接执行continue跳过f.close(),导致文件资源没有正常释放
修复方法
  1. 每个f.write()写入内容后,手动追加换行符\n实现单行显示
  2. 把文件打开操作移到循环外部,避免每次循环覆盖已有内容
  3. 推荐使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:24:02