[PYTHON] Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis

Nachtrag

Der Kommentarbereich ist echt (obwohl er kurz ist) Vielen Dank, dass Sie @takahirom!

Hintergrund

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.

Das Ergebnis des Versuchs

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.

Recommended Posts

Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis
Suchen Sie den Dateinamen einschließlich des angegebenen Wortes und der angegebenen Erweiterung im Verzeichnis
Abrufen des Dateinamens in einem Ordner mithilfe von glob
Dateizugriff unter dem Verzeichnis
Holen Sie sich den in AWS S3 gespeicherten Dateinamen (1000 oder mehr)
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Extrahieren Sie die xz-Datei mit Python
Speichern Sie die Binärdatei in Python
Die Geschichte des "Lochs" in der Akte
Extrahieren Sie die Targz-Datei mit Python
Holen Sie sich den Hostnamen in Python
Speichern Sie die Pydrive-Authentifizierungsdatei in einem anderen Verzeichnis als das Skript
Formatieren Sie das Git-Protokoll und erhalten Sie den festgeschriebenen Dateinamen im CSV-Format
Extrahieren Sie Informationen mit File :: Stat in Ruby
Memorandum (Namen nur Personen mit demselben Nachnamen in der Liste hinzufügen)
Starten Sie den Webserver im aktuellen Verzeichnis
Lesen Sie die Datei Zeile für Zeile mit Python
Zeigen Sie den vollständigen Pfad (absoluten Pfad) einer Datei in einem Verzeichnis in Linux Bash an
Lesen Sie die Datei Zeile für Zeile mit Python
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Installieren Sie das Python-Modul in einem beliebigen Verzeichnis
[Python] Lesen Sie die angegebene Zeile in der Datei
[Entpacken] So dekomprimieren Sie nur beliebige Dateien von Dateien mit umgekehrten Verzeichnisbegrenzern in Zip-Dateien
Importfehler: Der Name'Flask 'kann nicht importiert werden, wenn der Dateiname in Flask flask.py lautet
Python / Unterprozess> Symbolischer Link Implementierung, um nur den Zieldateinamen abzurufen> os.readlink ()
Behandeln Sie CSV mit dem Element, das Sie im Namen der Datei analysieren möchten
Extrahieren Sie den Produktnamen und den Preis aus der Produktliste in der E-Mail mit der Kaufabrechnung von Yodobashi.com.
Verwenden Sie PIL in Python, um nur die gewünschten Daten aus Exif zu extrahieren
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Pipfile wird nicht im aktuellen Verzeichnis erstellt
Greifen Sie auf Dateien im selben Verzeichnis wie die ausführbare Datei zu
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Holen Sie sich nur Unterklassenelemente in eine Liste
Durchsuchen Sie das angegebene Verzeichnis rekursiv, um die Datei anzuzeigen
Zip mit Python extrahieren (unterstützt japanische Dateinamen)
Starten Sie einen HTTP-Server im aktuellen Verzeichnis
Auszug nur vollständig aus dem Ergebnis von Trinity
Was! Der entpackte Dateiname war SJIS! Befehl?
In Bash "Löschen Sie die Datei, falls vorhanden".
So lesen Sie Dateien in verschiedenen Verzeichnissen
Extrahieren Sie die Textinformationen in die MP3 / MP4-Datei und speichern Sie sie in der Textdatei (* .lrc) für Sony Walkman.
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Ich möchte nur Pods mit dem angegebenen Label mit Label Selector in Client-go extrahieren
Ich möchte den Dateinamen von DataLoader sehen
Laden Sie Dateien herunter, während Sie den Fortschritt in Python 3.x anzeigen
So erhalten Sie den Variablennamen selbst in Python
Extrahieren und listen Sie die Namen von Personen und Orten im Text auf
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Einbetten in datetime, wenn nur die Zeit bekannt ist
Laden Sie das gleichnamige Modul an einer anderen Stelle
Python-Programm, das nach demselben Dateinamen sucht
[IBM Cloud] Platzieren Sie die ISO-Datei im Objektspeicher
Extrahieren Sie das Element, indem Sie das in der Zeichenfolge enthaltene Tag löschen
Extrahieren Sie nur Elemente, die bestimmte Bedingungen in Python erfüllen
Extrahieren Sie jeden Standort aus Stargazers im Github-Repository
Python> Bibliothek> Betriebssystem> os.walk ()> Verzeichnisstruktur / Implementierung abrufen, um jeden Dateipfad im angegebenen Verzeichnis abzurufen
Extrahieren Sie nur den Klang eines bestimmten Instruments aus der MIDI-Datei und machen Sie es zu einer separaten Datei
Problemumgehung für sys.argv wird nicht übergeben, wenn ein Python-Skript mit nur dem Dateinamen unter Python2.7 unter Windows ausgeführt wird