我正在尝试编写一个像网站https://www.peteranswers.com/一样的程序。也就是说,要在屏幕上显示一个字符,该字符是先前写入的文本的一部分,无论您键入哪个字符。我的尝试是这样的:
f=open("text1.txt", "r")
g=open("text2.txt", "w")
while True:
a = input()
g.write(a)
c = f.read(1)
if not c or a == "$":
break
print (c)
f.close()
g.close()
它有效,但我不想显示你输入的字符,也不必每次都按Enter键。
怎么可以这样做?是否存在完成此任务的更直接的方法?
我正在研究Python 3.7和IDLE。
您链接的网站不适合我。从代码中,我假设你想要一些像密码输入功能一样的东西。但是你希望回显的字符取自现有的文本而不是什么或者是'或'*的流。
如果是这样,我建议您在getpass模块中修改适用于Unix或Windows的功能。请注意,两个回声抑制函数都需要sys.stdout == sys.stdout(==系统终端而不是None)。既不回应任何东西,你必须添加它。在IDE中运行时,如果IDLE重新绑定sys.stdout以打印到GUI,它们都不起作用。
如果你在Windows上,你应该阅读https://docs.python.org/3/library/msvcrt.html#console-i-o。您可以使用putch
写入字节,或使用getwch
和putwch
输入和输出unicode字符。在Unix上,你必须自己深入研究代码。