Datei-Liste mit Glob in Python

Ich habe eine Liste von csv-Dateien in mydir.Ich möchte die Liste der Dateinamen erhalten. Jedoch mit Glob als unten ist die Rückgabe einer leeren Liste.

import glob mydir = "C:\Data" file_list = glob(mydir + "*.csv") print('file_list {}'.format(file_list)) 

  • Löschen von NaN-Zeilen, bestimmte Spalten in bestimmten Excel-Dateien mit Glob / Merge
  • Warum kann python Glob meinen Daumen nicht erkennen (und was kann ich dagegen tun?)
  • Wie kann ich Unter-Ordner mit dem glob.glob-Modul in Python durchsuchen?
  • Finden Sie eine Datei in einem Verzeichnis mit python durch partiellen Namen
  • Die letzte Datei im Verzeichnis für ein bestimmtes Format zurückgeben
  • Verwenden Sie python-Glob, um einen Ordner zu finden, der eine 14-stellige Zahl ist
  • Umbenennen des verschachtelten Feldes im Zündkerzen-Dataframe
  • Ändern der Dateierweiterung in Python
  • Umbenennen von "Keine" Wert in Pandas
  • Dateien umbenennen, Python / Jython
  • Umbenennen mehrerer Spalten auf einem Reset-Index mit Pandas
  • Python, wie kann ich mehrere Dateien aus einer Liste umbenennen?
  • 3 Solutions collect form web for “Datei-Liste mit Glob in Python”

    Sieht aus wie Sie müssen nur Ihre Schrägstrich, um in das richtige Verzeichnis zu suchen.

     import glob mydir = "C:\Data" file_list = glob.glob(mydir + "/*.csv") # Include slash or it will search in the wrong directory!! print('file_list {}'.format(file_list)) 

    Versuche fnmatch :

     import os from fnmatch import fnmatch mydir = "C:/Data" file_list = [file for file in os.listdir(mydir) if fnmatch(file, '*.csv')] print('file_list {}'.format(file_list)) 

    Verwenden Sie auch RegEx:

     import os import re mydir = "C:/Data" file_list = [file for file in os.listdir(mydir) if re.search('.*\.png', file)] print('file_list {}'.format(file_list)) 

    Übrigens, glob ist ein Modul, solltest du glob.glob() wie glob.glob() :

     from glob import glob mydir = "C:/Data" file_list = glob(mydir + "/*.csv") print('file_list {}'.format(file_list)) 

    Ihnen fehlt ein Backslash zwischen dem Dateinamen und dem Verzeichnis. ABER Sie können einen String nicht mit einem einzigen Backslash beenden, denn es wird denken, dass Sie versuchen, dem Endquote zu entkommen. Sie können es in den Anruf zu Glob stattdessen setzen. (Beachten Sie, dass Sie beide Strings roh machen wollen, es ist eine gute Praxis, falls Ihr Verzeichnis mit einem "n" oder einem "t" beginnt, das in diesem Fall als Abstandszeichen interpretiert wird.):

     import glob mydir = r"C:\Data" file_list = glob.glob(mydir + r"\*.csv") print('file_list {}'.format(file_list)) 

    Auch vielleicht möchten Sie mit pylint versuchen, um auf häufige Fehler oder Warnungen zu überprüfen. Es hätte eine Warnung für den ungedeckten Verzeichnisnamen geworfen.

    Aktualisieren:

    Tatsächlich würde ich es einfach vereinfachen:

     import glob file_list = glob.glob(r"C:\Data\*.csv") print('file_list {}'.format(file_list)) 
    Python ist die beste Programmiersprache der Welt.