python3遍历目录获取所有子目录以及子目录下的所有文件

Posted 香菜哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3遍历目录获取所有子目录以及子目录下的所有文件相关的知识,希望对你有一定的参考价值。

方法1:

import os
import traceback

file = []
dir = []
dir_res = []
give_path = \'./test001\'

def list_dir(start_dir):
    dir_res = os.listdir(start_dir)
    for path in dir_res:
        temp_path = start_dir + \'/\' + path
        if os.path.isfile(temp_path):
            file.append(temp_path)
        if os.path.isdir(temp_path):
            dir.append(temp_path)
            list_dir(temp_path)

if __name__ == \'__main__\':
    try:
        list_dir(give_path)
        print("file:", file)
        print("dir:", dir)
    except Exception as e:
        print(traceback.format_exc(), flush=True)

 

方法2

root_path = r"D:\\test001"
for root,dirs,files in os.walk(root_path,topdown=False):
    for name in files:
        print("files:",os.path.join(root,name))
    for name in dirs:
        print(os.path.join(root,name))

 

方法3

# !/usr/bin/env python3
import os
import sys
from os.path import join, basename, isdir

def tree(d, leval=0, pre=\'\'):
    global a, b
    l = [i for i in os.listdir(d) if i[0] != \'.\']
    for i, f in enumerate(l):
        last = i == len(l) - 1
        s1 = "\'" if last else \'|\'
        s2 = " " if last else \'|\'
        print(\'{}{}--{}\'.format(pre, s1, f))
        t = join(d, f)
        if os.path.isdir(t):
            a += 1
            tree(t, leval + 1, \'{}{}  \'.format(pre, s2))
        else:
            b += 1

def main(d=os.getcwd()):
    print(basename(d.rstrip(os.sep)))
    tree(d)
    print(\'\\ntotal={}folders,{}files\\n\'.format(a, b))

if __name__ == \'__main__\':
    a, b = 0, 0  # a,b分别为文件夹总数和文件总数
    if len(sys.argv) < 2:
        main(\'./test001\')
    else:
        if isdir(sys.argv[1]):
            main(sys.argv[1])
        else:
            print(sys.argv[1], \'is not a directory\')

 

以上是关于python3遍历目录获取所有子目录以及子目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

Python中如何遍历指定目录下的所有文件?

如何使用perl遍历一个目录下的所有文件

c#遍历文件夹获得所有文件

python3.4下遍历文件目录,不需要再特殊处理中文编码

os.walk获取目录中所有文件

python3.7脚本---遍历指定目录内所有文件