アカウント情報を編集する機能を含むアプリケーション (CLI) があります。これは、質問をして、回答に古い値を入力して編集できるようにすることで行われます。現在、私はこれを行うためにreadline
モジュールを使用しています。このモジュールを回避する同じことを別の方法で実行したいと思います ( Python が実行されるオペレーティング システムと 同様に、Windowsのすべての機能でアプリを実行できるようにしたい)。
私はもともと次のウェブサイトで次のコードを見つけました (関数に合うように少し変更しました) が、そのスレッドは 4 年前のものなので、ここで質問することにしました。http://bytes.com/topic/python/answers/471407-default-editable-string-raw_input
import readline
def editInput(question, old_value):
readline.set_startup_hook(lambda: readline.insert_text(old_value))
try:
new_value = raw_input(question)
finally:
readline.set_startup_hook(None)
return new_value
editInput('What\'s the answer? ', '32')
更新: readline の代替 (PyReadline など) は必ずしも必要ではありません。同じ結果が必要です。質問を更新して、必ずしも Windows と GNU/Linux で実行する必要はなく、python でサポートされているすべての OS で実行する必要があることに言及しました。したがって、基本的には、非常に基本的な関数 (sys.stdin など) のみを使用してください。