编写文件写入函数:读取多行输入存文件,遇单独点号停止
实现逐行写入文件的函数方案
我来帮你搞定这个文件写入的函数,完全贴合你描述的需求~
需求回顾
- 先询问用户要保存的目标文件名
- 循环读取用户输入的每一行并保存到文件中
- 当用户输入仅含单个点号的独立行时停止操作,且这一行不写入文件
- 最后输出保存成功的提示和实际写入的行数
完整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()
代码细节说明
- 文件名获取:用
input()直接获取用户输入,支持带路径的文件名(比如./test/mytest.txt) - 输入循环处理:
while True实现无限循环,直到用户输入.时跳出;rstrip('\n')只移除输入自带的换行符,确保用户输入的空行、带空格的内容都能被正确保存,不会误判终止条件 - 文件写入:用
with open上下文管理器自动处理文件的打开和关闭,避免资源泄漏;每行写入时主动添加换行符,保证文件内容和用户输入的格式完全一致 - 结果反馈:最后输出的提示信息和你给出的示例格式完全匹配,清晰告知用户保存结果
测试示例
运行代码后按照示例输入:
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
相关产品推荐
相关产品推荐

