python - os.walk()

2023-11-03

介绍

讲解

  • 概述

      os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
      os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
    
  • 语法

      walk()方法语法格式如下:
      os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
    
  • 参数

      top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
           root  -- 所指的是当前正在遍历的这个文件夹的本身的地址
           dirs  -- 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
           files -- 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
          
    topdown -- 可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
    
    onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
    
    followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
    
  • 返回值

      该方法没有返回值。
    

实例

import os
import re

def get_mysql_log_home():
    try:
        mysql_bin_path = os.popen('which mysql').read()
        mysql_bin_path = mysql_bin_path[:-2]
        mysql_home = os.path.dirname(mysql_bin_path)
        mysql_log_path = os.path.join(mysql_home, '..', 'data')
    except IOError:
        return ''
    else:
        print('## mysql_log_path: ',mysql_log_path)
        return mysql_log_path

def get_log_file_list(path, preffix = 'mysql-bin'):
    logFiles = []
    try:
        for root, dirs, files in os.walk(path):
            print('## root, dirs, files: ',root, dirs, files)
            for logFile in files:
                pattern = '%s%s%s' % ('^(', preffix, ').*')
                if (re.match(pattern, logFile)):
                    f = os.path.join(root, logFile)
                    print('## logFiles: ',f)
                    logFiles.append(f)
    except Exception:
        return []
    else:
        return logFiles

def Main():
    logPath = get_mysql_log_home()
    if logPath == '':
        return 0
    allLogFile = get_log_file_list(logPath)
    if len(allLogFile) == 0:
        return 0
    try:
        for f in allLogFile:
            # os.remove(f)
            print('## REMOVEF: ',f)
    except Exception:
        return 0
    else:
        return 1

if __name__ == '__main__':
    print(Main())


@结果
('## mysql_log_path: ', '/home/mysql/bin/../data')
('## root, dirs, files: ', '/home/mysql/bin/../data', ['uep4x', 'oozie', 'hueomm', 'odpp', 'mysql', 'yita', 'dap_model', 'uep4x_caf_fm', 'uep4x_pm', 'azkaban', 'performance_schema', 'ranger', 'impalaomm', 'testhue', 'hiveomm', 'uep4x_log', 'sparkomm', 'test'], ['jfsh4.err', 'mysql-bin.index', 'mysql-bin.000016', 'ib_logfile1', 'ibdata1', 'mysql-bin.000015', 'jfsh4.pid', 'ib_logfile0'])
('## logFiles: ', '/home/mysql/bin/../data/mysql-bin.index')
('## logFiles: ', '/home/mysql/bin/../data/mysql-bin.000016')
('## logFiles: ', '/home/mysql/bin/../data/mysql-bin.000015')
 ......
('## REMOVEF: ', '/home/mysql/bin/../data/mysql-bin.index')
('## REMOVEF: ', '/home/mysql/bin/../data/mysql-bin.000016')
('## REMOVEF: ', '/home/mysql/bin/../data/mysql-bin.000015')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python - os.walk() 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 如何避免使用 python 处理空的标准输入?

    The sys stdin readline 返回之前等待 EOF 或新行 所以如果我有控制台输入 readline 等待用户输入 相反 我想打印帮助并在没有需要处理的情况下退出并显示错误 而不是等待用户输入 原因 我正在寻找一个Pytho
  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • 无法在 selenium 和 requests 之间传递 cookie,以便使用后者进行抓取

    我用 python 结合 selenium 编写了一个脚本来登录网站 然后从driver to requests这样我就可以继续使用requests进行进一步的活动 I used item soup select one div class
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 如何使用scrapy检查网站是否支持http、htts和www前缀

    我正在使用 scrapy 来检查某些网站是否工作正常 当我使用http example com https example com or http www example com 当我创建 scrapy 请求时 它工作正常 例如 在我的pa
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Python HMAC:类型错误:字符映射必须返回整数、None 或 unicode

    我在使用 HMAC 时遇到了一个小问题 运行这段代码时 signature hmac new key secret key msg string to sign digestmod sha1 我收到一个奇怪的错误 File usr loca
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 使用 Python 将连续日期分组在一起

    Given dates datetime 2014 10 11 datetime 2014 10 1 datetime 2014 10 2 datetime 2014 10 3 datetime 2014 10 5 datetime 201
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar

随机推荐

  • MonoField MonoReflectionField FieldInfo

    mono mcs class corlib System Reflection MonoField cs StructLayout LayoutKind Sequential internal class MonoField RtField
  • 环形链表问题

    题目 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos 来表示
  • linux 软件安装各种方法

    一 简单介绍 1 软件安装卸载 分几种情况 A RPM包 这种软件包就像windows的EXE安装文件一样 各种文件已经编译好 并打了包 哪个文件该放到哪个文件夹 都指定好了 安装非常方便 在图形界面里你只需要双击就能自动安装 如何卸载 1
  • SE-ResNet的实现

    见 D pythonCodes 深度学习实验 4 1 经典分类网络 inference代码汇总 models se resnet py 一 SE ResNet的实现方法 读了senet这篇论文之后 可以知道senet并没有提出一个新的网络
  • Easyui combobox 判断输入项是否存在于下拉列表中

    combobox的getValue方法很诡异 当输入项是存在于下拉列表时 返回的是需要的ID 但是当输入项是不存在于下拉列表时 却直接返回用户的输入结果 从而导致没法判断用户是否输入了下拉框不存在的项 本来第一时间想到直接判断getValu
  • 蓝绿发布、滚动发布、灰度发布,有什么区别?

    目录 01 蓝绿发布 02 滚动发布 03 灰度发布 04 A B测试 在项目迭代的过程中 不可避免需要 上线 上线对应着部署 或者重新部署 部署对应着修改 修改则意味着风险 目前有很多部署发布的技术 这儿将常见的做一个总结 举一个情景例子
  • 第一次使用Xshell服务器跑程序(保姆教程)

    前期准备 1 提前下载好Xshell和Xftp 2 有自己的服务器账号名 密码 服务器IP 默认端口号 我的是组里师兄给我创建的 以上两步下载注册步骤可以参考文章1和文章2 3 我的服务器默认安装好了Anaconda3和cuda11 1 1
  • Flutter之状态管理Provider使用和详解

    在前端页面 状态管理和消息传递一直是我们开发一个交互性好 体验好的前端应用或者APP必须要提到的东西 设想一下我们需要两个组件之间共享数据 而且两个组件之间具有联动效果 对于Flutter来说我们能够把数据保存到一个全局变量 然后每次使用的
  • Spring源码分析之createBean主流程分析

    我们知道 在调用getBean获取bean实例的实例 首先会从缓存中获取bean实例 如果没有获取到 就会去创建bean的时候 关于获取bean实例 可以参考Spring源码分析之getBean主流程分析 而本文将会对创建bean实例的主流
  • 分享一个前后端分离的web项目(vue+spring boot)

    Github地址 https github com smallsnail wh 前端项目名为wh web 后端项目名为wh server 项目展示地址为我的github pages https smallsnail wh github io
  • simple and useful command lines

    pip list grep package name 显示获取已安装包的信息 包名与版本号 pip show package name 能显示该安装的包的相关信息 其中包括它的安装路径 实际上包通常被安装在python安装目录下的lib s
  • Numpy学习笔记

    文章目录 常用函数 np linspace numpy arange start end step dtype numpy tile A reps np array numpy ndim A np flatten np reshape np
  • RPA机器人有效解决低效能业务流程升级难点

    企业的数字化 自动化转型是一个综合命题 RPA也绝非是低效套用的通用模板 在决策各个阶段的关键要点都需要量体裁衣 细致考量 为了达到更好的效果 企业在从厘清内部需求阶段就应引入专业的咨询人员有针对性地开展交流和指导 以结果为导向 协助企业全
  • ue4 命令行编译 烘焙 打包 存档

    首先是官方wiki的说明 How to package your game with commands Jump to navigation search Template Rating This aims to be a quick gu
  • 爬虫做js逆向分析的思路

    1 为什么要做逆向 正常我们访问一个网站是由html css js 文件组成的 下图是某网站的正常访问 当然我们也可以看到是谁调用了这个请求执行了什么 2图为某网站登录链接 分析URL 我们可以看到这个链接他的请求参数 传输方式等 我们可以
  • 蚁群算法原理及matlab代码实现

    蚁群算法基本原理 背景 在自然界中 生物群体所表现出的智能得到越来越多的关注 许多的群智能优化算法都是通过对群体智能的模拟而实现的 其中模拟蚂蚁群体觅食的蚁群算法成为一种主要的群智能算法 算法原理 在自然界中 对于觅食的蚂蚁群体 其可以在任
  • MATLAB PreScan CarSim 联合仿真

    参考视频 PreScan carsim simulink联合仿真 哔哩哔哩 bilibili 参考文档 matlab carsim prescan联合仿真从零开始详细步骤 版本 MATLAB2021b Prescan8 5 CarSim20
  • java注解-ElementType详解

    java注解使用是相当频繁 特别是在搭建一些框架时 用到类的反射获取方法和属性 用的尤其多 java中元注解有四个 Retention Target Document Inherited Retention 注解的保留位置 Retentio
  • go安装

    windows 1 建议去go语言中文网下载 网址 https studygolang com dl 2 配置环境变量 先创建GOPANTH 再配置path 如图 3 检测环境是否安装成功
  • python - os.walk()

    介绍 讲解 概述 os walk 方法用于通过在目录树中游走输出在目录中的文件名 向上或者向下 os walk 方法是一个简单易用的文件 目录遍历器 可以帮助我们高效的处理文件 目录方面的事情 语法 walk 方法语法格式如下 os wal