我有一個Python腳本,需要抑制當您使用鍵盤響應提示時發生的stdin
的回顯。當使用鍵盤時,我可以使用VT100控制代碼向上移動一行,清除該行,然後向上移動另一行(以便輸出清除新刪除的行)。如何檢查raw_input()是否來自Python中的鍵盤
但是,此代碼攪亂輸出並最終清除線有效輸出時的輸入來自文件(即cat test | myscript.py
,因爲標準輸入顯然並未迴響在這種情況下,任何東西到標準輸出。
我無法控制如何輸入發送到腳本,我不知道用戶是否會使用鍵盤或文件。
有沒有什麼辦法可以檢查raw_input()的輸出如果輸入來自鍵盤,運行VT100控制代碼?
是的,這工作完美。謝謝! – javanix
出於好奇,有沒有什麼方法可以「腳本化」TTY輸入,可能會在我的腳本中插入一個扳手? – javanix
是的,但它不能通過管道工作。參見pty模塊。如果您的目的是完全禁用回聲,請按照Ignacio的說法(在測試isatty之後);無論如何,這是shell和編輯使用的。 –