Форум сайта python.su
0
Приветствую!
Необходимо получить список файлов в заданной директории, не заходя при этом в другие поддиректории, и сравнить этот список с заранее предопределенным списком. Пробую так:
import os from os import walk source_files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx''] upload_files = [] downpath = r'\\server\to_upload' for files in os.walk(downpath): for _file in files: if _file in source_files: upload_files.append(_file)
\\server\to_upload\file1.xlsx \\server\to_upload\nofile1.xlsx \\server\to_upload\file2.xlsx \\server\to_upload\nofile2.xlsx \\server\to_upload\somedir\file1.xlsx \\server\to_upload\somedir\file2.xlsx
\\server\to_upload\file1.xlsx \\server\to_upload\file2.xlsx
Отредактировано The_Immortal (Сен. 16, 2020 03:07:21)
Офлайн
124
у себя вот так попробовал
import os directory = r'D:\схемы' files = os.listdir(directory) print(files) filter_files = filter(lambda f: f.endswith('.gif'),files) for i in filter_files: print(i)
filter_files = filter(lambda f: f=='блок питания жк.jpg',files)
Отредактировано xam1816 (Сен. 16, 2020 04:44:29)
Офлайн
4
здесь посмотрите
import __hello__
Офлайн
0
xam1816Таким образом в список каталоги также попадают, фильтр почему-то не срабатывает. Да и мне не надо фильтровать по расширению… Нужно просто получить список файлов в корневом каталоге и найти совпадения с заранее предопределенным списком файлов.
у себя вот так попробовал
import glob, os source_files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'] upload_files = [] downpath = os.chdir(r'\\server\to_upload') for _file in glob.glob("*.*"): if _file in source_files: upload_files.append(_file)
Отредактировано The_Immortal (Сен. 16, 2020 13:19:49)
Офлайн