我如何在目录中列出文件夹

时间:2018-04-17 16:01:00

标签: python python-3.x python-2.7

这是我的代码:

import os

def get_file():
    files = os.listdir('F:/Python/PAMC')
    print(files)

    for file in files:
        print(file)

get_file()

如何在python中仅列出目录中的文件夹?

3 个答案:

答案 0 :(得分:1)

在Python 3.6中尝试并测试了以下代码

import os

filenames= os.listdir (".") # get all files' and folders' names in the current directory

result = []
for filename in filenames: # loop through all the files and folders
    if os.path.isdir(os.path.join(os.path.abspath("."), filename)): # check whether the current object is a folder or not
        result.append(filename)

result.sort()
print(result)

#To save Foldes names to a file.
f= open('list.txt','w')
for index,filename in enumerate(result):
    f.write("%s. %s \n"%(index,filename))

f.close()

替代方式:

import os
for root, dirs, files in os.walk(r'F:/Python/PAMC'):
    print(root)
    print(dirs)
    print(files)

替代方式

import os
next(os.walk('F:/Python/PAMC'))[1]

答案 1 :(得分:0)

尝试使用os.walk生成器来获取指定目录中的所有文件夹:

next(os.walk('F:/Python/PAMC'))[1]

答案 2 :(得分:0)

如果您想使用for循环文件夹名称,可以使用以下代码。

#--------*---------*---------*---------*---------*---------*---------*---------*
# Desc: Using 'yield' to get folder names in a directory
#--------*---------*---------*---------*---------*---------*---------*---------*

import os
import sys

def find_folders():
    for item in os.listdir():
        if os.path.isfile(item):
            continue
        else:
#                                  # yield folder name     
            yield item


#--------*---------*---------*---------*---------*---------*---------*---------#
while 1:#                          M A I N L I N E                             #
#--------*---------*---------*---------*---------*---------*---------*---------#
#                                  # set directory
    os.chdir("C:\\Users\\Mike\\Desktop")
    for folder in find_folders():
         print (folder)
    sys.exit()                     # END SAMPLE CODE SNIPPET