Ohne os.path.isfile()
verwenden werden Sie nicht wissen, ob die von glob()
zurückgegebenen Ergebnisse sind Dateien oder Unterverzeichnisse, so versuchen, so etwas wie dieses stattdessen:
import fnmatch
import os
def find_files(base, pattern):
'''Return list of files matching pattern in base folder.'''
return [n for n in fnmatch.filter(os.listdir(base), pattern) if
os.path.isfile(os.path.join(base, n))]
rar_files = find_files('somedir', '*.rar')
Sie können auch filtern, dass nur die von glob()
zurückgegebenen Ergebnisse wenn Sie möchten, und das hat den Vorteil, ein paar zusätzliche Dinge in Bezug auf Unicode und dergleichen zu tun. Überprüfen Sie die Quelle in glob.py, wenn es darauf ankommt.
[n for n in glob(pattern) if os.path.isfile(n)]
Sie sollten eine Antwort auf diese Frage annehmen ... – GreenAsJade