繁体   English   中英

我如何确定用户何时在输入某些内容作为Python的输入?

[英]How can I determine when a user is in the process of entering something as an input in Python?

为了练习和娱乐,我正在研究一个小型的Python聊天客户端,该客户端连接到在线服务。 聊天允许其他用户查看主要用户何时输入。 我希望其他用户看到程序的用户何时输入要发送给他们的东西。

>>>Stranger: Hello, user.
>>>Hello, how are y...

这可能会将变量hasSomethingEntered设置为True,因为正在键入某些内容,而

>>>Stranger: Hello, user.
>>>

会将变量hasSomethingEntered设置为False,因为用户尚未在输入框中输入任何内容。 然后,此变量将传递到与服务器进行通信的单独线程中,并使其知道客户端的用户正在键入。

现在,我正在使用Python的输入命令来获取用户的聊天条目。 使用Python可以做我想做的事吗? 如果没有,您能推荐我可以用来实现同一目标的另一种方式或语言吗?

我希望我在这里要完成的工作很清楚,并先谢谢您。

您可以一次读取一个字符,使hasSomethingEntered在第一个字符之后为true, 在行尾之后为false。 不幸的是,这是依赖平台的。

视窗:

import msvcrt
one_character= msvcrt.getch()

Unix:

import sys, tty
tty.setraw(sys.stdin.fileno())
one_character= sys.stdin.read(1)

在后一种情况下,您很可能希望使用以下命令保存和还原sys.stdin的模式

import sys, termios
previous_mode= termios.tcgetattr( sys.stdin.fileno() )

import sys, termios
termios.tcsetattr(sys.stdin.fileno(),termios.TCSADRAIN, previous_mode )

, 分别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM