如何扩大Python中input()函数的输入长度上限,解决1023字符后卡住问题
问题描述
我在.py文件中使用
input()函数接收输入,当输入内容超过1023个字符时程序就会卡住。我认为input()的输入上限理应高于1023字符,请问要如何操作才能实现更长内容的输入?
原因说明
Python内置input()函数本身不存在1023字符的输入上限,该限制来源于系统终端/控制台的默认行缓冲配置:类Unix系统终端默认开启规范输入模式,内核层的行缓冲区默认大小为1024字节,扣除末尾换行符后刚好支持1023个字符的输入,超出后终端会拦截输入触发卡住的现象,Windows控制台也存在类似的默认行缓冲限制。
可行解决方案
- 方案1:临时修改终端配置(仅适用于类Unix系统测试场景)
运行脚本前先在当前终端执行命令stty -icanon关闭规范输入模式,即可突破1023字符输入限制,测试完成后执行stty icanon恢复终端默认配置即可。 - 方案2:代码层面改用标准输入流读取(全平台通用)
放弃使用input(),直接从sys.stdin读取完整输入内容,无长度限制:import sys # 读取所有输入内容,结束输入需按 Ctrl+D(macOS/Linux)或 Ctrl+Z(Windows) full_input = sys.stdin.read() - 方案3:从本地文件读取输入(生产环境最优方案)
长输入场景建议优先把内容写入本地文件,程序直接读取文件内容,完全规避终端输入的各类限制:with open("input_content.txt", "r", encoding="utf-8") as f: full_input = f.read()
问题相关截图

内容的提问来源于stack exchange,提问作者Trinidad
相关产品推荐
相关产品推荐

