Необходимо получить список файлов в заданной директории, не заходя при этом в другие поддиректории, и сравнить этот список с заранее предопределенным списком. Пробую так:
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 находится следующее:
\\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
Проблемы две:
1. В каталоге \\server\to_upload помимо поисковых файлов находятся другие каталоги и os.walk в них заходит в поисках уже не нужных файлов, например таких как \\server\to_upload\somedir\file1.xlsx и \\server\to_upload\somedir\file2.xlsx. Мне же надо искать только файлы и только внутри “\\server\to_upload”
2. Несмотря на то, что находятся искомые файлы, сравнение if _file in source_files: почему-то не срабатывает.
Просьба помочь разобраться в решении.
Спасибо!