Используйте модуль glob
, чтобы вывести список файлов в каталоге, соответствующем шаблону:
import glob
import os.path
csv_files = glob.glob(os.path.join(directory_name, '*.csv'))
Если csv_files
- это непустой список, есть соответствующие файлы.
Под капотом модуль glob
преобразует шаблон глобуса в регулярное выражение для вас (через fnmatch.translate()
, запускает os.listdir()
в указанном каталоге и возвращает только теимена, соответствующие шаблону, в виде полных путей:
>>> import os.path, glob, tempfile
>>> with tempfile.TemporaryDirectory() as directory_name:
... pattern = os.path.join(directory_name, '*.csv')
... # nothing in the directory, empty glob
... print('CSV file count:', len(glob.glob(pattern)))
... # create some files
... for n in ('foo.csv', 'bar.txt', 'ham.csv', 'spam.png'):
... __ = open(os.path.join(directory_name, n), 'w') # touches file, creating it
... csv_files = glob.glob(pattern)
... print('CSV file count after creation:', len(csv_files))
... for filename in csv_files:
... print(filename)
...
CSV file count: 0
CSV file count after creation: 2
/var/folders/vh/80414gbd6p1cs28cfjtql3l80000gn/T/tmp2vttt0qf/foo.csv
/var/folders/vh/80414gbd6p1cs28cfjtql3l80000gn/T/tmp2vttt0qf/ham.csv