Python 遍历目录并更新字典

Python iterating through directories and updating dictionary

字典 "d" 仅包含最新的迭代子文件夹键和值,当我想添加所有文件夹时。我不明白为什么我的字典会在文件夹更改后从空字典开始更新。

import os
from os.path import join

for (dirname, dirs, files) in os.walk('.'):
    d = dict()
    for filename in files:
        if filename.endswith('.txt') :
            value_thefile = os.path.join(dirname,filename)
            key_size = os.path.getsize(value_thefile)
            d.update({key_size:value_thefile})
print d

字典 d 不断为外部 for 循环的每次迭代设置一个新的空字典。即它不断重新初始化为 {}:

for (dirname, dirs, files) in os.walk('.'):
    d = dict()    # this makes d == {} for each iteration of os.walk('.')
    for filename in files:
        ...

相反,在循环之外对其进行初始化,如下所示:

d = dict()    # this makes d == {} only at the start
for (dirname, dirs, files) in os.walk('.'):
    for filename in files:
        ...  # rest of your code