2009-08-07 25 views
0

我寫了一個簡單的類似shell的程序,它使用readline爲了提供參數的智能完成。我希望這個機制支持含有空格的參數,並且被引用來表示一個參數(就像提供shell一樣)。使用python的readline處理帶引號的行

我已經看到shlex.split()知道如何解析引用的參數,但是如果用戶想完成中間輸入,它會失敗(例如:'complete'Hello'會導致異常被拋出傳遞時shlex因爲不平衡引號)。

是否有這樣做的代碼?

謝謝!

回答

2

我不知道該任務的任何現有的代碼,但如果我是做到這一點,我會捕獲異常,嘗試添加假尾隨引用,並查看shlex.split如何修改字符串。

+0

我已經考慮過了,但是想看看有沒有更難看的東西。因爲這樣你就不得不嘗試添加「或」等,而這只是不...漂亮:) – abyx 2009-08-07 17:21:13

+1

這不是很漂亮,因爲用例看起來相當複雜 – 2009-08-07 17:25:28

+0

像今天這樣實現,for缺少其他選項 – abyx 2009-08-09 16:57:54