поиск всех файлов excel с помощью os.walk(), затем вызовите функцию для чтения этого excel. Как я могу это сделать?

Я создал функцию для чтения листа Excel read_Excel_file(path), которая возвращает список, содержащий некоторые данные из определенного столбца.

и в основном коде я ищу все файлы excel (где имя начинается «Дизайн»), и этот файл excel должен быть сохранен в папке Design. Если я нахожу файл Excel, я вызываю функцию read_Excel_file.

Пожалуйста, найдите ниже код:

import openpyxl as opx
import os


for r, d, f in os.walk('.'):
    for file in f:
        if '.xlsx'  and 'design' in file:
            #print(r)
            if r.endswith('\Design'): 
                print(file)                     
                read_Excel_file(file)                

но я получаю ошибку:

Нет такого файла или каталога

даже если я уверен, что у меня есть этот файл в моем каталоге

Как вы думаете, у меня проблемы с дорожкой?

PS: я добавляю print(file) только для проверки имени файла, но когда read_Excel_file(file) после этого у меня ошибка.

Не могли бы вы мне помочь?


person Merkhan    schedule 28.11.2019    source источник
comment
Привет, @Meryem, я думаю, ты можешь упростить свой код до минимального рабочего примера. Насколько я понял вашу проблему, она связана только с поиском и открытием файлов с помощью os.walk(...), а часть openxlsx вообще не имеет значения...   -  person konstantin    schedule 28.11.2019
comment
@ Константин, я импортирую openxlsx для чтения некоторых данных из листа Excel   -  person Merkhan    schedule 28.11.2019


Ответы (1)


Файл - это просто имя файла. Вам не хватает полного адреса. Вам нужно добавить корневую часть адреса.

Просто сделать:

filepath = os.path.join(r, file)
read_Excel_file(filepath) 
person Nerdrigo    schedule 28.11.2019