使用 os.stat 时,是否创建了元变量?
When using os.stat, is a meta variable created?
我目前正在学习 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'
为什么是'humansize.approximate_size(meta.st_size)','for f, meta'中的meta变量是从哪里来的?
这与os.stat
无关。
你似乎跳过了那一章的主题,理解 - 这是一个字典理解。正如前面对列表理解的讨论,dict comp 为它正在迭代的 dict 中的每个项目创建变量。在那段代码的脚注中对此进行了解释。
我目前正在学习 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'
为什么是'humansize.approximate_size(meta.st_size)','for f, meta'中的meta变量是从哪里来的?
这与os.stat
无关。
你似乎跳过了那一章的主题,理解 - 这是一个字典理解。正如前面对列表理解的讨论,dict comp 为它正在迭代的 dict 中的每个项目创建变量。在那段代码的脚注中对此进行了解释。