Python嵌套循环

2024-10-02 10:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我是python新手,有一个问题,关于做嵌套循环的最佳/python方法。在

我想把每个目录放在一个数组中,在这个数组中包含一个嵌套的文件数组。在

我一直在研究pythons数组、dict、set和tuples,但不确定最好的方法

[注意,我只想对一个级别执行此操作,而不是递归地遍历所有目录]

目前我有一个函数,将所有子目录的文件添加到一个数组中,但是现在我还需要返回它们的父文件夹。在

提前谢谢

    def getffdirs():

    filedirs = []

    path = os.curdir

    for d in os.listdir(path):      

        if os.path.isdir(d):
            print("Entering " + d)

            curPath = os.path.join(path, d)
            for f in os.listdir(curPath):      

                if os.path.isfile(f):
                    print("file " + f)  
                    filedirs.append(f)     
    return filedirs

Tags: 文件path方法in目录forifos
2条回答

为此,我会使用字典,键是目录和文件的值列表:

def getffdirs():

  dirs = {}
  path = os.curdir
  for d in os.listdir(path):      

    if os.path.isdir(d):
        print("Entering " + d)
        dirs[d] = [] # add directory with empty list

        curPath = os.path.join(path, d)
        for f in os.listdir(curPath):      

            if os.path.isfile(f):
                print("file " + f)  
                dirs[d].append(f) # add files to appropriate directory
  return dirs

要访问数据:

^{pr2}$

编辑:如果你想要一本字典

编辑2:如果你想省略隐藏的目录

from os import listdir, curdir
from os.path import isfile, isdir, join

filedirs = dict((d, [f for f in listdir(d) if isfile(join(d,f))]) 
                for d in listdir(curdir) if isdir(d) and d[0] != '.')

原件:

这就是你要找的吗?在

^{pr2}$

相关问题 更多 >

    热门问题