Автозаполнение файла pathpath с использованием ввода пользователей

(Python)

Я ищу, чтобы захватить вход пользователя для пути к файлу. Это кажется довольно простым, но я не могу заставить readline или rlcompleter работать.

В значительной степени: variable = raw_input ('Filepath:'), а затем путь к файлу имеет функции автозаполнения, как в оболочке.

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

Я видел это: Закладка вкладки в raw_input() на Python, которая помогла мне понять, что искать, хотя проблема заключалась в том, что она требовала перед файлом, например "extra". Мне нужно установить переменную как путь к файлу. Вы могли бы подумать, что это будет довольно просто, но я ничего не нашел в этом, и те немногие, что я нашел, были не совсем тем, что я искал.

В bash была команда read -e, которая может быть запущена в командной строке, но не распознана в script, которая была нечетной. Это именно то, что я искал, хотя бы его можно было использовать внутри script, чтобы установить переменную равной автозаполненной траектории файла.

Ответ 1

Что-то вроде этого?

import readline, glob
def complete(text, state):
    return (glob.glob(text+'*')+[None])[state]

readline.set_completer_delims(' \t\n;')
readline.parse_and_bind("tab: complete")
readline.set_completer(complete)
raw_input('file? ')

Ответ 2

Это только свободно python, и я подозреваю, что есть вероятность, что кто-то может взломать это и вызвать у вас всевозможные проблемы... или что-то подобное, но это способ, которым я получил bash и python, чтобы хорошо играть вместе.

import subprocess

the_file=subprocess.check_output('read -e -p "Enter path file:" var ; echo $var',shell=True).rstrip()