使用os.stat时,是否创建了一个元变量?

时间:2015-07-07 19:19:04

标签: python python-3.x dictionary-comprehension

我目前正在使用本指南学习python(如果你想要更多上下文)http://www.diveintopython3.net/comprehensions.html#dictionarycomprehension

>>> import os, glob, humansize
>>> metadata_dict = {f:os.stat(f) for f in glob.glob('*')}                                  ①
>>> humansize_dict = {os.path.splitext(f)[0]:humansize.approximate_size(meta.st_size) \     
...                   for f, meta in metadata_dict.items() if meta.st_size > 6000}          ②
>>> list(humansize_dict.keys())                                                             ③
['romantest9', 'romantest8', 'romantest7', 'romantest6', 'romantest10', 'pluraltest6']
>>> humansize_dict['romantest9']                                                            ④
'6.5 KiB'

为什么它是humanize.approximate_size(meta.st_size)'对于f,meta'在哪里有元变量?来自哪里?

1 个答案:

答案 0 :(得分:3)

这与os.stat无关。

你似乎已经跳过了那一章的主题,理解 - 这是一个词典理解。正如之前对列表推导的讨论一样,dict comp为它迭代的dict中的每个项创建变量。这段代码的脚注中对此进行了解释。