Python preenchido automaticamente a partir da pasta [duplicado]

Aug 26 2020

Tenho brincado com o python recentemente e construí um arquivo python que lê arquivos em um diretório específico. O arquivo específico que ele lerá é passado a partir da linha de comando:

import sys
DIR = /path/to/files
with open(DIR + sys.argv[1]) as fil:
    print(fil.readlines())

# python testPy.py fileName
# >>> prints contents of file

Estou curioso para saber se há uma maneira de completar tabulação os nomes dos arquivos em DIR

Respostas

Ajordat Aug 26 2020 at 05:35

Não é diretamente uma funcionalidade de preenchimento automático, mas você pode listar todo o conteúdo no diretório e procurar por todos os arquivos / pastas que começam com a entrada fornecida pelo usuário. Dessa forma, se apenas um único valor for encontrado, essa é a única possibilidade e você terá encontrado o arquivo desejado.

O código deve ser algo como o seguinte:

import os

DIR = "/path/to/files"
content = os.listdir(DIR)
filename = sys.argv[1]

candidates = [path for path in content if path.startswith(filename)]

if len(candidates) == 1:
    print(os.path.join(DIR, candidates[0]))
elif len(candidates) > 1:
    print(f"Multiple options: {candidates}")
else:
    print(f"There are no files starting with '{filename}'")