在Python中写入文件时,如何标记用户输入结束?(Windows10+Python3.11)
在Windows Python中用Ctrl+Z触发EOF结束输入的实现
在Windows系统下,Python的input()函数在用户按下Ctrl+Z(之后按回车)时会抛出EOFError异常,你可以通过捕获这个异常来替代用'0'判断输入结束的逻辑。同时推荐使用with语句管理文件,避免手动关闭文件的疏漏。
修改后的代码
# 创建文本文件并写入多行内容 with open("newfile.txt", 'w') as f: try: while True: line = input() f.write(line + '\n') except EOFError: # 捕获EOF异常,结束输入循环 pass
说明
- 运行代码后,输入任意内容并按回车确认;需要结束输入时,按下Ctrl+Z再按回车即可触发EOF,程序会自动终止循环并关闭文件。
- 使用
with语句会在代码块结束后自动关闭文件,比手动调用f.close()更可靠,能避免因异常导致文件未关闭的问题。 - 原代码用'0'作为终止符的逻辑会将'0'也写入文件,而通过EOF触发的方式不会写入额外终止字符,更贴合C语言中Ctrl+Z的使用习惯。
内容的提问来源于stack exchange,提问作者Spellbinder2050
相关产品推荐
相关产品推荐

