首页 > 解决方案 > 从python文件夹中的子文件夹中读取excel文件

问题描述

我想从文件夹列表中读取子文件夹中的 excel 文件。

directory_list = list()
for root, dirs, files in os.walk('D:/Sectors_Week_1/', topdown=False):
    for name in dirs:
        directory_list.append(os.path.join(root, name))
for root in roots:
    for i in range(len(dirs)):
        sourcepath=root+dirs[i]

        sourcefiles = os.listdir(sourcepath)
        #print(sourcefiles)   
        for j in sourcefiles:
            file_path = file_path = root+dirs[i]+ '/'+sourcefiles
            print(file_path)
           # df = pd.read_excel(file_path = root+dirs[i]+ '/'+sourcefiles[j])

我收到一个错误:只能将 str(不是“列表”)连接到 str。我不知道读取 excel 文件的路径是什么。

标签: pythonpandas

解决方案


感谢@sammywemmy 的编辑

试试现在标准的路径模块:pathlib

查找所有excel文件:

from typing import List
import pathlib

def find_excel_files_in(directory:pathlib.Path) -> List[pathlib.Path]:
    files:List[pathlib.Path] = list()

    for filepath in directory.rglob('*.xlsx'):
        if filepath.is_file():
            files.append(filepath)

    return files

# List of your directories
directories:List[str] = ['D:/Sectors_Week_1/']

found_files:List[pathlib.Path] = list()

for directory in directories:
    directory:pathlib.Path = pathlib.Path(directory)
    found_files.extend(find_excel_files_in(directory))

for filepath in found_files:
    print(filepath)


推荐阅读