2013-03-14 6 views
6

私はプログラムをPythonで書いています。ユーザーはコマンドラインでプログラムを操作します。私はraw_inputを使ってユーザからコマンドを取得しています。私はbashなどのような "メモリ"を持っているので、キーボード上の矢印(上または下)を押すと、前/次のコマンドを取得します。私は(単にユーザーが入力したすべての文字を取得し、それを確認してください)、それを行うために約1の方法を知っているが、多分あなたは私はあなたが望むものを理解していれば、次のことができ歴史のあるPythonのコマンドライン

挨拶

+0

ユーザの入力をすべてリストに入れてコマンドインデックスを追跡してみませんか?何かのように、上矢印を押すとコマンドインデックスを減らし(前のコマンドを取得します)、下にコマンドインデックスをインクリメントします。 – thegrinner

答えて

11

:-)キュート/より良いものを知っていますreadlineモジュールをインポートするだけで実現できます。これにより、raw_input()の動作が変更され、ヒストリと行編集の点でPythonのインタラクティブシェルのように動作します。

はそれが私がtryブロック内でそれをインポートすることをお勧めしたいreadlineなしのpythonを構築することが可能です、しかし注意してください:

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

うん、それはまさに私が欲しかった、ありがとう! – sokoli