如何在屏幕上显示与使用Python按下的字符不同的字符?

问题描述 投票:0回答:1

我正在尝试编写一个像网站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。

python python-idle
1个回答
0
投票

您链接的网站不适合我。从代码中,我假设你想要一些像密码输入功能一样的东西。但是你希望回显的字符取自现有的文本而不是什么或者是'或'*的流。

如果是这样,我建议您在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写入字节,或使用getwchputwch输入和输出unicode字符。在Unix上,你必须自己深入研究代码。

© www.soinside.com 2019 - 2024. All rights reserved.