我有一个Python脚本,它需要抑制stdin
的回声,当您使用键盘响应提示时会发生这种情况。在
当使用键盘时,我可以使用VT100控制代码上移一行,清除该行,然后再向上移动另一行(以便输出清除新清空的行)。在
但是,当输入来自一个文件(即cat test | myscript.py
)时,这段代码会扰乱输出,并最终清除一行有效的输出,因为在这种情况下stdin显然没有向stdout回显任何内容。在
我无法控制如何将输入发送到脚本,也不知道用户将使用键盘还是文件。在
有什么方法可以让我检查raw_input()的输出,并且只有当输入来自键盘时才运行VT100控制代码?在
您需要的函数是filehandles上的isatty(“is a TTY”)。你可以测试一下标准输入, 系统标准输出或者系统标准随你需要。在
顺便说一句,这也是Python用来检测是否显示交互式提示(只需试试cat | Python)
"... suppress the echo of ^{} ..."
相关问题 更多 >
编程相关推荐