Покажите, что значение по умолчанию для редактирования на Python ввело возможный?

Это возможный для Python принять вход как это:

Folder name: Download

Но вместо пользователя, вводящего "Загрузку", это уже там как начальное значение. Если пользователь хочет отредактировать его как "Загрузки" все, что он должен сделать, добавляют' и нажимают Enter.

Используя нормальную входную команду:

folder=input('Folder name: ')

все, что я могу получить, является пустой подсказкой:

Folder name:

Существует ли простой способ сделать это, что я отсутствую?

59
задан sth 28 March 2010 в 14:23
поделиться

4 ответа

Функции стандартной библиотеки input() и raw_input() не имеют такой функциональности. Если вы используете Linux, вы можете использовать модуль readline для определения функции ввода, которая использует значение предварительного заполнения и расширенное редактирование строки:

import readline

def rlinput(prompt, prefill=''):
   readline.set_startup_hook(lambda: readline.insert_text(prefill))
   try:
      return input(prompt)  # or raw_input in Python 2
   finally:
      readline.set_startup_hook()
65
ответ дан 24 November 2019 в 18:26
поделиться

Если вы это сделаете, пользователю придется удалить существующее слово. Как насчет предоставления значения по умолчанию, если пользователь нажимает «return»?

>>> default_folder = "My Documents"
>>> try: folder = input("folder name [%s]:" %default_folder)
... except SyntaxError: folder = default_folder
-3
ответ дан 24 November 2019 в 18:26
поделиться

Полагаю, вы имеете в виду из командной строки. Я никогда не видел начальных значений для приглашений командной строки, они обычно имеют форму:

     Folder [default] : 

, что в коде просто:

     res = raw_input('Folder [default] : ')
     res = res or 'default'

В качестве альтернативы вы можете попробовать что-то сделать с помощью модуля curses в Python.

18
ответ дан 24 November 2019 в 18:26
поделиться

Я думаю, что лучшим (самым простым и переносимым) решением является комбинация ответов @rlotun и @Stephen:

default = '/default/path/'
dir = raw_input('Folder [%s]' % default)
dir = dir or default
3
ответ дан 24 November 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: