2010-04-07 34 views
23

我已經編寫了一個可以執行某些任務的小控制檯應用程序。用戶界面與版本控制系統或yum等類似。因此,基本上可以將其視爲特定於域的語言。現在我想編寫一個(bash like)shell,它可以執行和自動完成這種語言並具有命令歷史記錄(所以我不必在每個命令中加載和保存相當大的xml文件)。簡而言之,我需要像ipython之類的東西,但不是用於執行python代碼,而是我自己的DSL。如何在Python中編寫shell

是否有任何圖書館可以幫助我做到這一點?我發現在python中有一個readline和rlcompleter模塊,但它的文檔似乎表明這只是用於python shell本身,還是我錯過了那裏的東西?

回答

21

您應該查看cmdcmd2模塊。我認爲他們會做你想做的。有關於這些的PyCon talk

+1

是的,那正是我一直在尋找的!謝謝。 – panzi 2010-04-07 22:02:34

+2

對話的鏈接不再有效。另一個鏈接到相同的談話[這裏是在pyvideo。](http://pyvideo.org/video/306/pycon-2010--easy-command-line-applications-with-c)。這個演講被稱爲:來自pycon us 2010的帶有cmd和cmd2(#153)的簡單命令行應用程序。 – klaas 2016-01-13 21:09:51