Автозаполнение Python из папки [дубликат]

Aug 26 2020

В последнее время я играл с python и создал файл python, который читает из файлов в определенном каталоге. Конкретный файл, который он будет читать, передается из командной строки:

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

Мне любопытно, есть ли способ, которым я могу заполнить имена файлов в DIR

Ответы

Ajordat Aug 26 2020 at 05:35

Это не прямая функция автозаполнения, но вы можете перечислить все содержимое в каталоге и найти все файлы / папки, которые начинаются с введенных пользователем данных. Таким образом, если будет найдено только одно значение, это единственная возможность, и вы найдете целевой файл.

Код должен быть примерно таким:

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