Python运行时写入文件如何排除分隔符-99并简化代码?
解决Python Jupyter Lab中写入文件时包含终止符的问题
嘿,我明白你的困扰了——你的代码确实会把终止符-99也写入文件,而且还悄悄丢了第一次输入的内容!让我帮你修正并简化这段代码。
原代码的问题分析
你的代码逻辑顺序出了点问题:
- 第一次获取的输入内容根本没写入文件,直接用来判断循环条件了
- 当你输入
-99时,代码会先把它写入文件,再在下一次循环判断时退出,导致终止符被保留
简洁且正确的解决方案
用with语句自动管理文件(不用手动关文件),调整输入判断的顺序,就能完美解决问题:
# 替换成你的目标文件名,比如"lab_output.txt" with open("your_output_file.txt", "w") as file: while True: line = input("Enter content (type -99 to stop): ") if line == "-99": break # 遇到终止符直接退出,不写入文件 file.write(f"{line}\n")
这段代码的优势
- 自动文件管理:
with语句会在代码块结束后自动关闭文件,避免忘记调用file.close()导致的资源泄漏 - 逻辑清晰:先获取输入,立刻判断是否为终止符,是的话直接跳过写入步骤,完全符合你的需求
- 用户友好:提示信息明确告诉用户终止方式,减少困惑
- 无内容丢失:所有非终止符的输入都会被写入文件,包括第一次输入的内容
测试示例
如果你的输入序列是:
Hi Hello Welcome to python lab -99
写入文件的内容会是:
Hi Hello Welcome to python lab
完美排除了-99,也没有丢失任何有效内容。
内容的提问来源于stack exchange,提问作者SHENBGA BHARATHA PRIYA
相关产品推荐
相关产品推荐

