Penyelesaian otomatis Python dari folder [duplikat]

Aug 26 2020

Saya telah bermain-main dengan python akhir-akhir ini dan telah membangun file python yang membaca dari file di direktori tertentu. File spesifik yang akan dibaca diteruskan dari baris perintah:

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

Saya ingin tahu apakah ada cara untuk melengkapi nama-nama file di tab DIR

Jawaban

Ajordat Aug 26 2020 at 05:35

Ini bukan fungsi pelengkapan otomatis secara langsung, tetapi Anda dapat mencantumkan semua konten di direktori dan mencari semua file / folder yang dimulai dengan input yang disediakan pengguna. Dengan cara ini jika hanya satu nilai yang ditemukan, itulah satu-satunya kemungkinan dan Anda akan menemukan file yang dituju.

Kode tersebut harus seperti berikut:

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