欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python 遍历磁盘目录的三种方法

时间:2021-04-04 07:04:02|栏目:Python代码|点击:

深度遍历

递归

import os

def 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 os

def 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 os
import collections


def 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 如何在 Matplotlib 中绘制垂直线

栏    目:Python代码

下一篇:python 统计代码耗时的几种方法分享

本文标题:python 遍历磁盘目录的三种方法

本文地址:http://www.codeinn.net/misctech/94646.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有