una txt partir open manejo lista linea leer importar guardar especifica ejercicios datos crear como carpetas archivos archivo python bash input autocomplete

python - txt - autocompletado de ruta de archivo con la entrada de usuarios



open en python (2)

¿Algo como esto?

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? '')

(pitón)

Estoy buscando obtener una entrada de usuarios para un archivo de ruta. Parece bastante básico, pero parece que no puedo trabajar en readline o rlcompleter.

Más o menos: variable = raw_input (''Filepath:'') y luego el filepath tiene funciones de autocompletar como lo haría en un shell.

No estoy restringido a Python, estoy dispuesto a usar cualquier lenguaje siempre que pueda establecer una variable como ruta de archivo y tomar la ruta de archivo usando la funcionalidad de autocompletar.

He visto esto: Completar pestañas en Raw_input () de Python, lo que me ayudó a tener una idea de qué buscar, aunque el problema era que requería un comando delante del camino del archivo, como "extra". Necesito establecer la variable como ruta de archivo. Uno pensaría que sería bastante simple, pero no he encontrado mucho en él, y los pocos que encontré no eran exactamente lo que estaba buscando.

En bash había un comando read -e que se puede ejecutar en una línea de comando, pero no se reconoce en un script que era impar. Es exactamente lo que estaba buscando, si solo se pudiera utilizar dentro de una secuencia de comandos para establecer la variable igual a la ruta de archivo autocompletada.


Esto es solo python y sospecho que probablemente haya formas en que alguien podría hackear esto y causarle todo tipo de problemas ... o algo así, pero esta es una forma en que obtuve el bash y el pitón para jugar bien juntos.

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