Список файлов в корневой директории

The_Immortal

Новичок
Пользователь
Сен 9, 2020
6
0
1
Приветствую!

Необходимо получить список файлов в заданной директории, не заходя при этом в другие поддиректории, и сравнить этот список с заранее предопределенным списком. Пробую так:
Python:
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(_file)

Проблемы две:

1. В каталоге "\\server\to_upload" помимо поисковых файлов находятся другие каталоги и os.walk в них заходит в поисках уже не нужных файлов. Мне же надо искать только файлы и только внутри "\\server\to_upload"
2. Несмотря на то, что находятся искомые файлы, сравнение if _file in source_files: почему-то не срабатывает.

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

Спасибо!
 
Последнее редактирование:

Abudallil

Новичок
Пользователь
Сен 11, 2020
11
0
1
Тогда может быть так:
Python:
import glob, os



source_files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
upload_files = []

downpath = os.chdir('\\server\to_upload')

for _file in glob.glob("*.xlsx"): # шарим в каталоге на предмет наличия файлов
  
    if _file in source_files: # если надо свериться с source_files
        if _file not in upload_files: # если найденный файл из новеньких
            upload_files.append(_file) # о кидаем его в upload_files

for upload_files in source_files: # проверяем совпадения появившихся с записанными
    print(upload_files) # вывод всех записанных файлов
 

Abudallil

Новичок
Пользователь
Сен 11, 2020
11
0
1
Python:
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):
       if _file in source_files:
            if _file not in upload_files:
                upload_files.append(_file)

for upload_files in source_files:
    print(upload_files)
Не совсем понятно с поиском в директории. Но проверку можно попробовать такую.
 

b0r0d1nsky

Новичок
Пользователь
Сен 16, 2020
3
0
1
Python:
# -*- coding: utf-8 -*-

import os

sdir ='\\\\server\to_upload\\'     #Папка в которой ищем
f2search = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']   #Список искомых файлов

def uploader(fname):   #Имитация функции аплоадера
    print(f'Ну типо зааплоадили файл {fname}')

files = os.listdir(sdir) #получаем список файлов [файл, файл2, файл3 и т.д.]
for file in files:
    if file in f2search:    #Перебираем каждый файл и смотрим есть ли он в списке f2search
        uploader(sdir + file)   #Если находим - аплоадим, ну и само собой указываем полный путь до файла для аплоадера
    else:
        pass  #Если нету то пасс, но можно опустить эту конструкцию

Если я правильно понял задание, тогда так.
 

The_Immortal

Новичок
Пользователь
Сен 9, 2020
6
0
1
Python:
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):
       if _file in source_files:
            if _file not in upload_files:
                upload_files.append(_file)

for upload_files in source_files:
    print(upload_files)
Не совсем понятно с поиском в директории. Но проверку можно попробовать такую.
Судя по предложенному решению задача вообще непонятна...

Ещё разок: есть каталог \\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


Ну и продублирую в связи с этим проблему:
В каталоге "\\server\to_upload" помимо поисковых файлов находятся другие каталоги и os.walk в них заходит в поисках уже не нужных файлов. Мне же надо искать только файлы и только внутри "\\server\to_upload"
Как ещё объяснить, не знаю.
 
Последнее редактирование:

Abudallil

Новичок
Пользователь
Сен 11, 2020
11
0
1
А эта конструкция навскидку с поиском во всех подкаталогах :
Python:
import os

source_files = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
upload_files = []

# шарим в каталоге на предмет наличия файлов вместе с подкаталогами
for _file in os.listdir('\\server\to_upload'):

    if _file.endswith(".xlsx"): # цепляем все .xlsx
            if _file in source_files:  # если надо свериться с source_files
                   print(os.path.join("'\\server\to_upload'", _file))
                    if _file not in upload_files:  # если найденный файл из новеньких
                          upload_files.append(_file)  # то кидаем его в upload_files

for upload_files in source_files:  # проверяем совпадения появившихся с записанными
    print(upload_files)  # вывод всех записанных файлов
 
Последнее редактирование:

Форум IT Специалистов