Python 在子文件夹中导入 csv 文件

Python importing csv files within subfolders

有没有办法导入folder1中的所有文件?每个 csv 文件都包含在一个子文件夹中。下面是文件结构。

C:/downloads/folder1 > 树/F

C:.
│   tree
│
├───2020-06
│       test1.csv
│
├───2020-07
│       test2.csv
│
├───2020-08
│       test3.csv
│
├───2020-09
│       test4.csv

我知道下面的 glob 可以获取文件夹中的所有文件。但是,这可以用于子文件夹吗?

import glob
import pandas as pd

# Get a list of all the csv files
csv_files = glob.____('*.csv')

# List comprehension that loads of all the files
dfs = [pd.read_csv(____) for ____ in ____]

# List comprehension that looks at the shape of all DataFrames
print(____)

使用glob.glob()方法的recursive关键字参数:

glob.glob('**\*.csv', recursive=True)

您可以使用os.walk查找所有sub_folder并获取所需的文件

这是一个代码示例

import os
import pandas as pd

path = '<Insert Path>'
file_extension = '.csv'
csv_file_list = []
for root, dirs, files in os.walk(path):
    for name in files:
        if name.endswith(file_extension):
            file_path = os.path.join(root, name)
            csv_file_list.append(file_path)

dfs = [pd.read_csv(f) for f in csv_file_list]

我在 Kite's 网站上找到了这个,请查看

path = "./directory/src_folder"

text_files = glob.glob(path + "/**/*.txt", recursive = True)

print(text_files)
OUTPUT
['./directory/src_folder/src_file.txt', './directory/src_folder/subdirectory/subdirectory_file.txt']