【问题标题】:How to get list of subdirectories names [duplicate]如何获取子目录名称列表[重复]
【发布时间】:2015-09-12 00:26:53
【问题描述】:

有一个目录,其中包含文件夹以及不同格式的文件。

import os 
my_list = os.listdir('My_directory')

将返回文件和文件夹名称的完整内容。例如,我可以使用endswith('.txt') 方法仅选择文本文件名称,但如何获取仅文件夹名称的列表?

【问题讨论】:

  • 如果您使用os.walk,它会分别为您提供目录和文件。

标签: python list


【解决方案1】:

我通常会检查目录,同时一次组装一个列表。假设有一个名为foo 的目录,我想检查子目录:

import os
output = [dI for dI in os.listdir('foo') if os.path.isdir(os.path.join('foo',dI))]

【讨论】:

    【解决方案2】:

    您可以使用os.walk

    for i,j,y in os.walk('.'):
        print(i) 
    

    【讨论】:

      【解决方案3】:

      只需对os.listdir返回的结果使用os.path.isdir,如:

      def listdirs(path):
          return [d for d in os.listdir(path) if os.path.isdir(os.path.join(path, d))]
      

      【讨论】:

        【解决方案4】:

        应该可以的:

        my_dirs = [d for d in os.listdir('My_directory') if os.path.isdir(os.path.join('My_directory', d))]
        

        【讨论】:

          【解决方案5】:

          os.walk 已经将文件和文件夹拆分到不同的列表中,并且递归工作:

          for root,dirs,_ in os.walk('.'):
              for d in dirs:
                  print os.path.join(root,d)
          

          【讨论】:

            猜你喜欢
            • 2019-12-10
            • 1970-01-01
            • 1970-01-01
            • 2015-09-24
            • 2021-07-05
            • 1970-01-01
            • 1970-01-01
            • 2020-07-24
            • 2011-12-08
            相关资源
            最近更新 更多