Der Kommentarbereich ist echt (obwohl er kurz ist) Vielen Dank, dass Sie @takahirom!
Wenn Sie "os.listdir (Pfad)" ausführen, wird die Liste der Dateien und Verzeichnisse in "Pfad" als Liste ausgegeben. Wenn Sie jedoch nur Verzeichnisse oder nur Dateien abrufen möchten, ist dies ein wenig. Ich habe darüber nachgedacht.
Die Umgebung ist Python 2.7.10 und das Betriebssystem ist Windows 7.
Ich denke, es gibt einen intelligenteren Weg, dies zu tun.
import glob
import os
def fileonly_listdir(path):
return [ i for i in os.listdir(path) if i not in [ j.replace(path, "").strip("\\") for j in glob.glob(os.path.join(path, "*") + "/")]]
Zerlegt, weil es schwer zu verstehen ist.
import glob
import os
def fileonly_listdir(path):
list_dir = os.listdir(path) #Holen Sie sich eine Liste der Objekte im Verzeichnis ... 1
dir_only_list = glob.glob(os.path.join(path, "*") + "/") #In einem bestimmten Pfad ist das Ende"/"Objekt = Nur Verzeichnis extrahieren
#Jedoch,"path\\dir\\"Wird in der Form sein
dir_only_list = [ i.replace(path, "").strip("\\") for i in dir_only_list ] #Beseitigen Sie die Hindernisse ... 2
file_only_list = [ i for i in list_dir if i not in dir_only_list ] #Subtrahieren Sie 1 bis 2
return file_only_list
Wenn Sie also nur eine Liste von Verzeichnissen wünschen
import glob
[ i.replace(path, "").strip("\\") for i in glob.glob(os.path.join(path, "*") + "/")]
Ist gut.
Das Verschachteln der Listeneinschlussnotation ist sehr schwer zu verstehen, daher ist es möglicherweise besser, "Filter" zu verwenden.