2013-03-14 106 views
6

我正在用python編寫程序,用戶需要通過命令行來處理程序。我正在使用raw_input從用戶獲取命令。我想要像bash等那樣擁有「內存」,所以,如果你在鍵盤上按下一個箭頭(向上或向下),就會得到上一個/下一個命令。我知道一個辦法做到這一點(簡單地得到由用戶輸入的每一個字符,並檢查它),但也許你知道的東西更好/更可愛:-)Python中的歷史命令行

問候

+0

爲什麼不把所有用戶的輸入放入列表並跟蹤命令索引?就像,如果他們按下向上箭頭減少命令索引(所以我們抓住前面的命令),向下會增加命令索引。 – thegrinner 2013-03-14 17:26:10

回答

11

如果我知道你想什麼,你可以只需導入readline模塊即可實現。這將修改raw_input()的行爲,使其在歷史和行編輯方面更像python交互式shell。

不過要小心,有可能構建Python沒有readline所以我建議將其導入一個try塊內:

try: 
    import readline 
except: 
    pass #readline not available 
+0

是的,這正是我想要的,謝謝! – sokoli 2013-03-14 17:40:21