python - 在 python 字典中查找键并返回其父项

标签 python dictionary nested

我有一个嵌套字典,其中包含一个文件夹列表,例如其中 2013_09_10 是根文件夹:

{'2013_09_10': {'master.tex': None, 'master.log': None, 'master.pdf': None, 'Makefile': None, 'pieces': {'rastin.tex': None, '02 Human Information Processing.txt': None, 'p1.tex': None, 'p3.tex': None, '03 Models and Metaphors.txt': None, 'p2.tex': None}, 'master.aux': None, 'front_matter.tex': None}}

我想要完成的是,给定文件名(例如 p1.tex),打印文件的实际路径

2013_09_10/pieces/p1.tex

我已经创建了这段代码,但它只提供了所有文件的名称,而不是其父键(目录):

def get_files(directory):
    for filename in directory.keys():
        if not isinstance(directory[filename], dict):
            print filename
        else:
            get_files(directory[filename])

输出:

master.tex
master.log
master.pdf
Makefile
rastin.tex
02 Human Information Processing.txt
p1.tex
p3.tex
03 Models and Metaphors.txt
p2.tex
master.aux
front_matter.tex

我认为我的代码只需要进行简单的修改即可完成我想要的,但我无法解决这个问题。

最佳答案

将前面目录的路径保存在第二个参数中,前缀:

import os
def get_files(directory, prefix=[]):
    for filename in directory.keys():
        path = prefix+[filename]
        if not isinstance(directory[filename], dict):
            print os.path.join(*path)
        else:
            get_files(directory[filename], path)

关于python - 在 python 字典中查找键并返回其父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19214099/

相关文章:

Javascript 多个 Div 具有相同的类名但不同的 id。单击其中任何一个时始终返回最后一个 div

python - Google Earth Engine Python API 的解决方法和 Python 3 中不支持 `ee.mapclient`

python - Django "Running migrations": django. db.utils.OperationalError : (2013, 'Lost connection to MySQL server during query' 期间出错)

python - tf.keras.models.model 与 tf.keras.model

c# - 使用 Linq 从数组构建字典

c++ - 了解嵌套结构

python - 修改python中嵌套字典中的键和值

python - Python 中的方法参数

python - 从 python 中的对象返回多个实例

java - 遍历具有重复值的 Map 并识别共享这些值的键