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

编写文件写入函数:读取多行输入存文件,遇单独点号停止

实现逐行写入文件的函数方案

我来帮你搞定这个文件写入的函数,完全贴合你描述的需求~

需求回顾

  • 先询问用户要保存的目标文件名
  • 循环读取用户输入的每一行并保存到文件中
  • 当用户输入仅含单个点号的独立行时停止操作,且这一行不写入文件
  • 最后输出保存成功的提示和实际写入的行数

完整Python实现代码

def save_lines_to_file():
    # 获取用户指定的文件名
    filename = input("Save to what file: ")
    saved_lines = []
    line_count = 0

    while True:
        # 读取用户输入,仅去掉末尾的换行符(保留输入的空行、空格等格式)
        user_input = input("> ").rstrip('\n')
        # 判断是否触发终止条件
        if user_input == ".":
            break
        # 记录有效行并计数
        saved_lines.append(user_input)
        line_count += 1

    # 将收集到的内容写入文件
    with open(filename, 'w', encoding='utf-8') as file:
        for line in saved_lines:
            file.write(f"{line}\n")

    # 输出最终保存信息
    print(f"Saving file {filename}")
    print(f"{line_count} lines saved")

# 调用函数执行流程
save_lines_to_file()

代码细节说明

  1. 文件名获取:用input()直接获取用户输入,支持带路径的文件名(比如./test/mytest.txt)
  2. 输入循环处理:while True实现无限循环,直到用户输入.时跳出;rstrip('\n')只移除输入自带的换行符,确保用户输入的空行、带空格的内容都能被正确保存,不会误判终止条件
  3. 文件写入:用with open上下文管理器自动处理文件的打开和关闭,避免资源泄漏;每行写入时主动添加换行符,保证文件内容和用户输入的格式完全一致
  4. 结果反馈:最后输出的提示信息和你给出的示例格式完全匹配,清晰告知用户保存结果

测试示例

运行代码后按照示例输入:

Save to what file: mytest.txt
> This is
> my attempt at
> the problem.
> 
> The last line was empty
> .

会得到输出:

Saving file mytest.txt
5 lines saved

完全符合预期效果~

内容的提问来源于stack exchange,提问作者Jim421616

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:34:07