Найти - Пользователи
Полная версия: Список файлов в корневой директории
Начало » Python для новичков » Список файлов в корневой директории
1
The_Immortal
Приветствую!


Необходимо получить список файлов в заданной директории, не заходя при этом в другие поддиректории, и сравнить этот список с заранее предопределенным списком. Пробую так:

 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: почему-то не срабатывает.

Просьба помочь разобраться в решении.

Спасибо!
xam1816
у себя вот так попробовал

 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)
delvin-fil
здесь посмотрите
The_Immortal
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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB