2011-12-14 15 views
24

Ubuntu 11.10 (Linux) üzerinde Python 3.2 kullanıyorum. Yeni bir kod parçasıdır şuna benzer:Python 3'ün Komut Satırı Arabirimindeki bir girişi() önceden doldurmak mümkün mü?

text = input("TEXT=")

o istemi sonra biraz önceden tanımlanmış bir dize almak mümkün mü, bu yüzden gerekirse bunu ayarlayabilirsiniz? Bu böyle olmalı:

python3 file 
TEXT=thepredefinedtextishere 

Şimdi

TEXT=thepredefinedtextish 

Şimdi Enter tuşuna basın Geri 3 kez basın ve değişken text Python yorumlayıcı Eğer thepredefinedtextish

+0

kısa cevap hayır, ama bunu yapmanın bir 'curses' veya' readline' hile olması kaçınılmazdır: Bu durumda, aşağıdaki çalışması gerekir. Soru için +1. –

+0

"Gir blargh (Varsayılan: 3)" sorduğunuz şeyi yapmaz, aynı sorunu çözer. –

+0

@LennartRegebro: Bu tam olarak aynı amaca hizmet etmiyor. Kullanıcının önceden tanımlanmış bazı varsayılanlarla birlikte bir arama yolu listesi girmesi gerektiğini düşünün. Kullanıcı muhtemelen değiştirilmek yerine önceden tanımlanmış listeyi tamamlamak isteyecektir. –

cevap

21

olmalıdır GNU readline'a bağlı, input() kullanacaktır.

def input_with_prefill(prompt, text): 
    def hook(): 
     readline.insert_text(text) 
     readline.redisplay() 
    readline.set_pre_input_hook(hook) 
    result = input(prompt) 
    readline.set_pre_input_hook() 
    return result 
+0

Mac OS X'te varsayılan olarak çalışmıyor. Ayrıca, girdiyi() '' raw_input() 'olarak değiştirmem gerekiyordu ya da" NameError: name '"yazıyordu * ne yazdım *' tanımlı değil '. –

+2

@EdwardFalk Bu Mac OS X ile ilgisi yoktur. Python 2'yi kullanıyorsunuz, bu soru Python 3 hakkında. –

+0

Ahh, bu bölümü kaçırdı. –

İlgili konular