【问题标题】:Python: how to loop through folders and files and index them in arrayPython:如何遍历文件夹和文件并将它们索引到数组中
【发布时间】:2015-03-24 13:08:01
【问题描述】:

我有一堆文件夹,每个文件夹都包含一组相同数量的文件。我想使用 python 循环遍历每个文件夹并对每个文件进行一些分析。我想将分析结果存储在一个 numpy 数组中。

例如,假设我们有 3 个文件夹,每个文件夹包含 5 个文件。我希望将分析结果存储在数组中results=np.zeros((3,5))

这是一个接近我想要的代码 sn-p,但不正确。

results=np.zeros((3,5))
dircount=0
filecount=0
for root, dirs, files in os.walk(ROOTFOLDER):
  for dir in root:
    for file in dirs:
      result[dircount,filecount]=#do some analysis with file
      filecount=filecount+1
    dircount=dircount+1
    filecount=0
print result

我必须承认,我并不完全了解 os.walk 的工作原理,但它似乎适用于涉及文件和文件夹循环的工作。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    os.walk() 完成了您尝试手动执行的大部分操作:

    results=np.zeros((3,5))
    dircount=0
    for root, dirs, files in os.walk(ROOTFOLDER):
        filecount = 0
        for f in files:
            #  absolute filename is os.path.join(root, f)
            result[dircount,filecount] = #do some analysis with file
            filecount += 1
        dircount += 1       
    print result
    

    主循环将递归遍历dirs 中的所有文件夹,从而获得该文件夹树中的所有文件。

    【讨论】:

      【解决方案2】:

      你可以在这里使用os.walk

      results=np.zeros((3,5))
      dircount=0
      for root, dirs, files in os.walk(ROOTFOLDER):
          filecount = 0
          for f in files:
              #  absolute path is os.path.join(root,f)
              result[dircount,filecount]
              filecount += 1
          dircount += 1       
      

      打印结果

      如果您需要递归完成文件夹中的 files_list

      files_list = [os.path.join(folder,i) for folder, subdirs, files in os.walk(ROOTFOLDER) for i in files]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-20
        • 2019-12-05
        • 2016-10-28
        • 2019-08-10
        • 1970-01-01
        相关资源
        最近更新 更多