我有一個應用程序(CLI),其中包括編輯帳戶信息的功能。它通過詢問一個問題並在答案中加入舊的價值來做到這一點,以便它是可編輯的。目前,我正在使用readline
模塊來執行此操作。我想用另一種方法來做同樣的事情,避免使用這個模塊(我想讓應用程序可以運行在
Windows上的所有功能以及運行python的任何操作系統上的GNU/Linux
)。在Python中插入文本到raw_input(以避免readine)的跨平臺方法
我最初發現下面的代碼(我修改它有點適應一個功能)在下面的網站,但由於該線程是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支持的操作系統上。所以基本上,只使用最基本的功能(如sys.stdin,等等)
感謝您的幫助。我想我必須看看編輯賬戶的不同方式,或者只是爲不提供readline的操作系統進行更改。 – avacariu 2010-07-25 04:25:19