gpt4 book ai didi

python - 尝试在 python 中进行无缓冲读取时出现奇怪的换行符

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:58 25 4
gpt4 key购买 nike

我有这个代码:

def getch(self):
if os.name == 'posix':
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(fd)
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
elif os.name == 'nt':
ch = msvcrt.getch()
return ch

这在 python 2.6 和 2.7 上运行得很好,但每当我尝试在 python 3.0 和更高版本上测试它时,stdin.read 调用会打印出一个新行,我认为这可能是因为 python 3 更改为 sys. stdin、stdout 和 stderr,但我不确定如何修复它

编辑:在 OS X 10.6.4 python 3.1 和 Ubuntu 9.04 python 2.6 上运行这发生在我身上。

最佳答案

这可能是特定于平台的问题。您是否在不同的基于 POSIX 的操作系统(例如 Linux、BSD、Darwin 等)上尝试过代码?你的结果一样吗?它们处理终端操作的方式都略有不同,因此您可能需要考虑的不仅仅是 posixnt,还需要更深入一些。

关于python - 尝试在 python 中进行无缓冲读取时出现奇怪的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4055903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com