2010-04-07 22 views
23

Belirli görevleri yerine getirebilen küçük bir konsol uygulaması yazdım. Kullanıcı arayüzü, sürüm kontrol sistemleri veya yum vb. Gibi şeylere benzer. Yani temel olarak bunu bir alana özgü dil olarak düşünebilirsiniz. Şimdi, bu dili çalıştırabilen ve otomatik tamamlayabilen (bir komut) kabuk yazmak istiyorum ve bir komut geçmişi var (bu yüzden her komutta oldukça büyük xml dosyalarını yüklemek ve kaydetmek zorunda değilim). Özetle, ipython gibi bir şey istiyorum ama python kodunu yürütmek için değil, kendi DSL'im.Python'da bir kabuk nasıl yazılır

Bunu yapmama yardımcı olan kütüphaneler var mı? Python'da bir readline ve rlcompleter modülü olduğunu görüyorum, ancak belgelerinin bunun sadece python kabuğunun kendisiyle birlikte kullanıldığını ya da orada bir şeyleri özlediğimi gösterdiğine işaret ediyor gibi görünüyor.

cevap

21

cmd ve cmd2 modüllerini gözden geçirmelisiniz. Bence istediklerini yapacaklar. Bunlar hakkında bir PyCon talk vardı.

+1

Evet bu tam aradığım oldu! Teşekkürler. – panzi

+2

Konuşmanın bağlantısı artık çalışmıyor. Aynı konuşmaya alternatif bir bağlantı [burada pyvideo'da.] (Http://pyvideo.org/video/306/pycon-2010--easy-command-line-applications-with-c). Konuşma denir: pycon us 2010'dan cmd ve cmd2 (# 153) ile kolay komut satırı uygulamaları. – klaas