使用python怎么对磁盘目录进行遍历

这篇文章给大家介绍使用python怎么对磁盘目录进行遍历,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

深度遍历

递归

importos

defget_files(path):
#判断路径是否存在,如果不存在,函数直接结束
ifnotos.path.exists(path):
print('路径不存在')
return
#判断路径是否为文件夹
ifnotos.path.isdir(path):
print('路径是一个文件')
return
#这时候,路径是一个文件夹
#获取文件夹中文件或文件夹的名称
file_list=os.listdir(path)
#遍历文件夹
forfilenameinfile_list:
#拼接路径,获取每个次级目录下的文件路径
subpath=os.path.join(path,filename)
ifos.path.isfile(subpath):
ifos.path.splitext(subpath)[1]=='.py':
print('python文件:{}'.format(subpath))
else:
#如果filename是文件夹,则调用函数继续遍历
get_files(subpath)

用栈来遍历磁盘

栈的特点:先进后厨,后进先出原理:path第一次被pop删除后返回path,遍历目录下的文件,如果遇到文件夹追加到列表中,pop是删除最后一位的元素,每次又遍历最后一位的文件夹,所以每一轮都会将次级目录下的文件夹遍历完成之后再遍历下个次级目录

使用python怎么对磁盘目录进行遍历

importos

defget_files(path):
#判断路径是否存在
ifnotos.path.exists(path):
print('路径不存在')
return
ifnotos.path.isdir(path):
print('路径是一个文件夹')
return
#创建一个列表作为栈
stack=[path]
#取出栈中的元素
whilelen(stack)!=0:
path=stack.pop()
file_list=os.listdir(path)
forfilenameinfile_list:
subpath=os.path.join(path,filename)
ifos.path.isfile(subpath):
print('python文件:{}'.format(subpath))
else:
stack.append(subpath)

广度遍历磁盘

用队列遍历磁盘

importos
importcollections


defget_py_file(path):
#判断路径是否存在
ifnotos.path.exists(path):
print('路径不存在')
return
#判断路径是否是文件夹
ifos.path.isfile(path):
print('路径是文件')
return
#path是一个文件夹

#定义一个空对列
queue=collections.deque()
queue.append(path)
whilelen(queue)!=0:
#从队列中获取第一个元素
path=queue.popleft()
#获取目录下的所有内容
filelist=os.listdir(path)
#遍历
forfilenameinfilelist:
#拼接
filepath=os.path.join(path,filename)
ifos.path.isfile(filepath):
ifos.path.splitext(filepath)[1]=='.py':
print(filepath)
else:
queue.append(filepath)

关于使用python怎么对磁盘目录进行遍历就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

发布于 2021-04-03 22:31:57
收藏
分享
海报
0 条评论
175
上一篇:怎么在linux中更改php版本号 下一篇:css3中的新增属性有哪些
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码