在Python中的for循环中将值传递给dict

时间:2014-02-04 13:07:45

标签: python python-2.7 for-loop dictionary

所以,我有一个包含子文件夹的文件夹,每个文件夹包含40个图像。

我使用以下代码迭代每个子文件夹中的每个图像:

for (dirname, dirnames, filenames) in os.walk('C:\.....')
    for filename in filenames:

图像的标题如下:

第一个文件夹: IM-0239-0001.dcm, IM-0239-0002.dcm, IM-0239-0003.dcm ........... IM-0239-0040.dcm

第二个文件夹 IM-0248-0001.dcm, IM-0248-0002.dcm, IM-0248-0003.dcm ..... IM-0248-0040.dcm

我想要做的是对子文件夹中的40个图像中的每个图像执行操作,获取它们的平均值,然后将该值与子文件夹标识符(例如“0239”)一起导出到字典之外的字典中。 for循环。

我在移动到下一个子文件夹之前传递平均值时遇到问题。我理想的解决方案,如果存在4个子文件夹,则将4个子文件夹UI及其相应的平均值传递给字典。

我尝试使用基于.split的函数(下面)与上面循环中的if语句结合来比较部分[1]以检测子文件夹的结尾:

parts = image_name.split('-')
return '-'.join((parts[1], parts[0], parts[2]))

但我正在寻找一种更加pythonic,时髦和更快的方法。

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您有一个图像目录,其中包含一个包含图像的子目录。您希望处理按包含子目录分组的图像。

您可以先阅读结构:

#! /usr/bin/python3
import os

tobeprocessed = {}
for curdir, subdirs, files in os.walk ('/home/lorenzo/stackoverflow/images'):
    if not files: continue
    tobeprocessed [curdir] = files

print (tobeprocessed)

现在你有一个字典,其键是文件夹,其值是包含文件,你可以根据需要处理它们。