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实现合并字典的方法
Jul 07 Python
Python运算符重载详解及实例代码
Mar 07 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Python 使用生成器代替线程的方法
Aug 04 Python
pandas参数设置的实用小技巧
Aug 23 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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
文件系统基本操作类
2006/11/23 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
php排序算法实例分析
2016/10/17 PHP
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
vue ssr 指南详读
2018/06/29 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python获取系统默认字符编码的方法
2015/06/04 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
举例讲解Python常用模块
2019/03/08 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
python3代码中实现加法重载的实例
2020/12/03 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
我们的节日国庆活动方案
2014/08/19 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript