Я создал скрипт python, который просит пользователя ввести 2 или 3 имени файла, которые необходимо проанализировать. Вставка имени файла выполняется в скрипте (он не передается как аргумент argparse
, потому что есть другие варианты, которые пользователь должен сделать до этого). Из-за соглашения об именах компаний эти имена файлов могут быть довольно длинными и, следовательно, громоздкими по типу. Чтобы помочь пользователю, я печатаю содержимое каталога. На данный момент я использую что-то вроде этого:
fname = raw_input("Insert phase 1 filename: ")
(чем я могу проверить файл if и т.д.)
Есть ли способ реализовать автозаполнение для имен файлов внутри скрипта python, написав функцию custom()?
Обратите внимание, что сценарий должен запускаться на разных компьютерах/ОС, и я не могу попросить пользователей установить некоторые нестандартные библиотеки python.
Если нет чистого способа сделать это, я могу использовать менее причудливое решение только распечатать номер перед именами файлов в каталоге и попросить пользователя вставить только номер.
Это может помочь: Завершение вкладки в raw_input() Python's()
Если вы не хотите использовать это и просто "угадать" файл:
commands = ["cute_file", "awesome_file"]
def find_file(text):
options = [i for i in commands if i.startswith(text)]
if len(options):
return options
else:
return None
my_input = input("File name:")
print(find_file(my_input))
raw_input2. In general, it is not great practise to use
хорошаяraw_input2. In general, it is not great practise to use
raw_input` для чего-то другого, кроме обучения. Вы говорите, что не можете использовать параметры командной строки, но уверены ли вы в этом?