Без использования os.path.isfile()
вы не будете знать, являются ли результаты, возвращаемые glob()
, файлами или подкаталогами, поэтому попробуйте что-то вроде этого:
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')
Вы также можете просто отфильтровать результаты, возвращаемые glob()
, если хотите, и у этого есть преимущество, если вы сделаете несколько дополнительных вещей, связанных с юникодом и тому подобным. Проверьте источник в glob.py, если это имеет значение.
[n for n in glob(pattern) if os.path.isfile(n)]