Completamento automatico Python dalla cartella [duplicato]

Aug 26 2020

Ultimamente ho giocato con Python e ho creato un file Python che legge dai file in una directory specifica. Il file specifico che leggerà viene passato dalla riga di 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

Sono curioso di sapere se esiste un modo in cui posso completare con la scheda i nomi dei file in formato DIR

Risposte

Ajordat Aug 26 2020 at 05:35

Non è direttamente una funzionalità di completamento automatico, ma potresti elencare tutti i contenuti della directory e cercare tutti i file / cartelle che iniziano con l'input fornito dall'utente. In questo modo se viene trovato un solo valore, questa è l'unica possibilità e avresti trovato il file mirato.

Il codice dovrebbe essere qualcosa di simile al seguente:

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}'")