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)) 

  • 'Str' unterstützt die Pufferschnittstelle Python3 von Python2 nicht
  • Extrahieren von Wörterbuchvariablennamen in einer Pythonendatei mit Regex
  • String in list, in eine Funktion
  • Umfang der Variablen in Python Dekorateur
  • Bild mit Unterprozess schließen
  • Recv / send on raw socket vor SSL wrap (), Python
  • Automatisches Dekorieren jeder Instanzmethode in einer Klasse
  • Was ist das '@ =' Symbol für in Python?
  • 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.