使用python怎么对磁盘目录进行遍历
短信预约 -IT技能 免费直播动态提醒
这篇文章给大家介绍使用python怎么对磁盘目录进行遍历,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
深度遍历
递归
import osdef get_files(path): # 判断路径是否存在,如果不存在,函数直接结束 if not os.path.exists(path): print('路径不存在') return # 判断路径是否为文件夹 if not os.path.isdir(path): print('路径是一个文件') return # 这时候,路径是一个文件夹 # 获取文件夹中文件或文件夹的名称 file_list = os.listdir(path) # 遍历文件夹 for filename in file_list: # 拼接路径,获取每个次级目录下的文件路径 subpath = os.path.join(path,filename) if os.path.isfile(subpath): if os.path.splitext(subpath)[1] == '.py': print('python文件:{}'.format(subpath)) else: # 如果filename是文件夹,则调用函数继续遍历 get_files(subpath)
用栈来遍历磁盘
栈的特点:先进后厨,后进先出
原理:path第一次被pop删除后返回path,遍历目录下的文件,如果遇到文件夹追加到列表中,pop是删除最后一位的元素,每次又遍历最后一位的文件夹,所以每一轮都会将次级目录下的文件夹遍历完成之后再遍历下个次级目录
import osdef get_files(path): # 判断路径是否存在 if not os.path.exists(path): print('路径不存在') return if not os.path.isdir(path): print('路径是一个文件夹') return # 创建一个列表作为栈 stack = [path] # 取出栈中的元素 while len(stack) != 0: path = stack.pop() file_list = os.listdir(path) for filename in file_list: subpath = os.path.join(path,filename) if os.path.isfile(subpath): print('python文件:{}'.format(subpath)) else: stack.append(subpath)
广度遍历磁盘
用队列遍历磁盘
import osimport collectionsdef get_py_file(path): # 判断路径是否存在 if not os.path.exists(path): print('路径不存在') return # 判断路径是否是文件夹 if os.path.isfile(path): print('路径是文件') return # path是一个文件夹 # 定义一个空对列 queue = collections.deque() queue.append(path) while len(queue) != 0: # 从队列中获取第一个元素 path = queue.popleft() # 获取目录下的所有内容 filelist = os.listdir(path) # 遍历 for filename in filelist: # 拼接 filepath = os.path.join(path, filename) if os.path.isfile(filepath): if os.path.splitext(filepath)[1] == '.py': print(filepath) else: queue.append(filepath)
关于使用python怎么对磁盘目录进行遍历就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341