Python批量删除只保留最近几天table的代码实例


Posted in Python onApril 01, 2019

Python批量删除table,只保留最近几天的table

代码如下:

#!/usr/bin/python3
"""
批量删除table,只保留最近几天的table
"""
import pymysql
import re
def conn_(host='',usr='',passwd='',db='',port=3306,):
  conn = pymysql.connect(host, usr, passwd, db, port,charset='utf8')
  return conn
def del_table(conn_,table_pre='',table_suff='%Y%m%d',keep_count=3):
  date_form = None
  if table_suff == "%Y%m%d":
    date_form = "_(\d{4}\d{1,2}\d{1,2})$"
    date_len = 8
  elif table_suff == "%Y-%m-%d":
    date_form = "_(\d{4}-\d{1,2}-\d{1,2})$"
    date_len = 10
  elif table_suff == "%Y%m":
    date_form = "_(\d{4}\d{1,2})$"
    date_len = 6
  elif table_suff == "%Y-%m":
    date_form = "_(\d{4}-\d{1,2})$"
    date_len = 7
  else:
    raise Exception("暂时不支持其他类型的时间后缀")
  curs = conn_.cursor()
  curs.execute('SHOW TABLES')
  data = curs.fetchall()
  table_ = r'%s'%table_pre+date_form
  list_table = []
  i = 0
  for table in data:
    mt = re.search(table_, table[0])
    if mt:
      if len(mt.groups()[0]) == date_len:
        list_table.append((table[0], mt.groups()[0]))
        i += 1
  sorted(list_table, key=lambda date: date[1]) #按照表结构后缀时间升序排序
  for j in range(i-keep_count):
    sql = 'DROP TABLE if exists %s'%list_table[j][0]
    curs.execute(sql)
  curs.close()
  conn_.close()
if __name__ == '__main__':
  table_pre = "tree_product"
  table_suff = "%Y%m%d"
  # table_suff = "%Y-%m-%d"
  # table_suff = "%Y%m"
  # table_suff = "%Y-%m"
  conn=conn_('10.0.0.11','root','sctele@root','sxf',port=3306)
  del_table(conn,table_pre=table_pre,table_suff=table_suff,keep_count=1)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python实现的简单hangman游戏实例
Jun 28 Python
pyenv命令管理多个Python版本
Mar 26 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
Python字符串格式化f-string多种功能实现
May 07 Python
Python request中文乱码问题解决方案
Sep 17 Python
浅析python实现动态规划背包问题
Dec 31 Python
Python实现给PDF添加水印的方法
Jan 25 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 #Python
python assert的用处示例详解
Apr 01 #Python
使用Python操作FTP实现上传和下载的方法
Apr 01 #Python
Python提取特定时间段内数据的方法实例
Apr 01 #Python
如何使用Python进行OCR识别图片中的文字
Apr 01 #Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 #Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 #Python
You might like
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
一文了解Vue中的nextTick
2019/05/06 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
2019/06/20 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
如何写出好的Java代码
2014/04/25 面试题
银行实习生的自我评价
2013/12/09 职场文书
自荐信写法介绍
2014/01/25 职场文书
社团活动总结格式
2014/08/29 职场文书
2014年副班长工作总结
2014/12/10 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python