python table删除一列_Python批量删除只保留最近几天table的源码示例

这篇博客介绍了如何使用Python连接MySQL数据库并批量删除表,仅保留最近几天的表格。通过正则表达式匹配日期格式,根据指定的保留天数进行排序并删除多余的表。
摘要由CSDN通过智能技术生成

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)

总结

上面即是这篇文章的全部内容了,希望此文的内容对各位亲们能有帮助,谢谢大家对学猫在线(shtml.net)的支持。如果你想了解更多相关内容请查看下面相关链接

本文来源:https://blog.csdn.net/sxf_123456/article/details/79224404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值