Discuss / Python / 第二题,我使用递归,因为递归的代码简洁,不过注意如果目录太深,容易造成内存溢出!

第二题,我使用递归,因为递归的代码简洁,不过注意如果目录太深,容易造成内存溢出!

Topic source

biggerdream

#1 Created at ... [Delete] [Delete and Lock User]

#导入os模块 import os

#定义查找指定文件名的函数:第一参数是要查找的指定文件名,第二个参数是查找的路径,默认参数是当前目录

def search(filename, path = os.curdir):

#遍历当前目录里面的所有文件和文件夹
for x in os.listdir(path):
    #获取每个文件和文件夹的路径
    xPath = os.path.join(path, x)
    #判断是文件还是文件夹(目录)
    if os.path.isdir(xPath):
        #如果是文件夹(目录),则继续查找(这里使用了递归!不过递归有个缺点,如果目录深度太大,容易造成内存溢出)
        search(filename, xPath)
    elif x.find(filename) != -1:
        #如果是文件,并且包含指定文件名,则打印其文件相对路径
        print('found: %s' % os.path.relpath(xPath))

#使用函数 search('hello')


  • 1

Reply