Python:使用文件夹名作为键,文件名作为值创建字典

Python:使用文件夹名作为键,文件名作为值创建字典,python,dictionary,Python,Dictionary,我想制作一个以文件夹名为键,以文件名为值的字典 用于不同文件夹中的不同文件。下面是我实现这一点的代码,但我没有得到预期的输出 我有一个目录,里面有不同的文件夹。目录名为sreekanth,其中有许多文件夹,如A,A1,A2,A3,其中包含.csv文件。 我试图从不同的文件夹中收集所有.csv文件,并将它们分配到Python字典中的相应文件夹 从os.path导入os 导入fnmatch d={} l=[] 文件列表=[] 文件列表1=[] 对于os.walk(“/Users/amabbu/Des

我想制作一个以文件夹名为键,以文件名为值的字典 用于不同文件夹中的不同文件。下面是我实现这一点的代码,但我没有得到预期的输出

我有一个目录,里面有不同的文件夹。目录名为
sreekanth
,其中有许多文件夹,如
A
A1
A2
A3
,其中包含
.csv
文件。
我试图从不同的文件夹中收集所有
.csv
文件,并将它们分配到Python字典中的相应文件夹

从os.path导入os
导入fnmatch
d={}
l=[]
文件列表=[]
文件列表1=[]
对于os.walk(“/Users/amabbu/Desktop/sreekanth”)中的路径、目录和文件:
对于fnmatch.filter(文件“*.csv”)中的f:
如果d.keys()中的os.path.basename(路径):
文件列表。追加(f)
d={os.path.basename(路径):list(文件列表)}
打印(“第一”,d)
其他:
d、 setdefault(os.path.basename(path),f)
打印(“第二”,d)

以下是使用
defaultdict
模块执行所需操作的简单方法:

import os
import fnmatch
from collections import defaultdict


d=defaultdict(set)
for path,dirs,files in os.walk('/Users/amabbu/Desktop/sreekanth'):
   for f in fnmatch.filter(files,'*.csv'):
      d[os.path.basename(path)].add(f)

print(dict(d))

谢谢,我这边的小改动后,这个代码正在按照我的期望工作。请您将它标记为,好吗?