Python automatisch aus Ordner [duplizieren]
Ich habe in letzter Zeit mit Python herumgespielt und eine Python-Datei erstellt, die aus Dateien in einem bestimmten Verzeichnis liest. Die spezifische Datei, die gelesen wird, wird über die Befehlszeile übergeben:
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
Ich bin gespannt, ob es eine Möglichkeit gibt, die Namen der Dateien in der Registerkarte zu vervollständigen DIR
Antworten
Es handelt sich nicht direkt um eine Autovervollständigungsfunktion, aber Sie können den gesamten Inhalt des Verzeichnisses auflisten und nach allen Dateien / Ordnern suchen, die mit der vom Benutzer bereitgestellten Eingabe beginnen. Wenn nur ein einziger Wert gefunden wird, ist dies die einzige Möglichkeit, und Sie hätten die Zieldatei gefunden.
Der Code sollte ungefähr so lauten:
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}'")