查看文件路径下所有文件

glob

glob的查找规则与re模块的正则表达式不相同
模式规则要应用于文件名中的段。模式中的路径可以是相对路径或绝对路径。
shell变量名和波浪线都不会扩展。

glob.glob("/tmp/*")
这个模式会匹配所有的路径名,但是不会递归搜索到子目录。

import glob
l = []
def foo(path):
    for i in glob.glob(path):
        if os.path.isdir(i):
            foo(i+"/*")
        else:
            l.append(i)
foo("/Users/summer/PycharmProjects/*")
print(l)

glob.glob("/Users/summer/PycharmProjects/*")
查看当前目录下一层的所有文件及文件夹
print(os.listdir("/Users/summer/PycharmProjects"))
["01.py", "02.py", "03.py", "count_code_all.py", "studnets", "学生选课系统"]

递归

l = []
def get_file(path):
    for i in os.listdir(path):
        p = os.path.join(path,i)
        if os.path.isdir(p):
            get_file(p)
        else:
            l.append(p)
            
get_file("/Users/summer/PycharmProjects")
print(l)

循环

path = "/Users/summer/PycharmProjects"
l = [path,]
l1 = []
while l:
    current_path = l.pop()
    for i in os.listdir(current_path):
        p = os.path.join(current_path,i)
        if os.path.isdir(p):
            l.append(p)
        else:
            l1.append(p)
print(l1)
原文地址:https://www.cnblogs.com/xiayuhao/p/9581176.html