import re
readdir="C:\\Users\\user\\Desktop\\sql.txt"
#readdir为已写好的sql文件位置,后缀必须为txt
writedir1="C:\\Users\\user\\Desktop\\newsql.txt"
#write1dir1为去重后的sql文件位置
writedir2="C:\\Users\\user\\Desktop\\oldsql.txt"
#write1dir2为重复的sql文件位置
lines=[]
liness=[]
old_lines=[]
f1=open(readdir,'r')
f2=open(writedir1,'w')
f3=open(writedir2,'w')
for line1 in f1:lines.append(line1)
a=(''.join(lines))
s1=re.sub('select','SELECT',a)
s2=re.sub('from','FROM',s1)
s3=re.sub('insert into','INSERT INTO',s2)
s4=re.sub('values','VALUES',s3)
s5=re.sub('update','UPDATE',s4)
s6=re.sub('set','SET',s5)
s7=re.sub('where','WHERE',s6)
s9=re.sub('alter table','ALTER TABLE',s7)
s10=re.sub('varchar','VARCHAR',s9)
s11=re.sub('modify column','MODIFY COLUMN',s10)
s12=re.sub('create table','CREATE TABLE',s11)
s13=re.sub('primary key','PRIMARY KEY',s12)
s14=re.sub('add column','ADD COLUMN',s13)
s15=re.sub('tinyint null comment','TINYINT NULL COMMENT',s14)
s16=re.sub('bigint null comment','BIGINT NULL COMMENT',s15)
s17=re.sub('not null comment','NOT NULL COMMENT',s16)
s18=re.sub('int null comment','INT NULL COMMENT',s17)
s19=re.sub('datetime null comment','DATETIME NULL COMMENT',s18)
s20=re.sub('date null comment','DATE NULL COMMENT',s19)
s21=re.sub('null comment','NULL COMMENT',s20)
s22=re.sub('null','NULL',s21)
s23=re.sub('comment','COMMENT',s22)
s24=re.sub('decimal','DECIMAL',s23)
c=s24.split(' ')
cs = [one.strip() for one in c]
while '' in cs:cs.remove('')
while cs:aname=cs.pop()+' 'old_lines.append(aname)
old_lines.reverse()
d=(''.join(old_lines))
b=d.split(';')
bs = [one.strip() for one in b]
while '' in bs:bs.remove('')
new_lines=[]
while bs:bname=bs.pop() + ';\n'new_lines.append(bname)
new_lines.reverse()
f1.close()
f1=open(readdir,'r')
for line2 in new_lines:a=re.search('USE `my`;',line2,re.IGNORECASE)b=re.search('USE `my_log`;',line2,re.IGNORECASE)c=re.search('USE `my_dzbl`;',line2,re.IGNORECASE)d=re.search('USE `my_forum`;',line2,re.IGNORECASE)e=re.search('USE `my_hds`;',line2,re.IGNORECASE)f=re.search('USE `my_mall`;',line2,re.IGNORECASE)g=re.search('USE `my_news`;',line2,re.IGNORECASE)if a or b or c or d or e or f or g:f2.writelines(line2)if line2 not in liness:f2.writelines(line2)liness.append(line2)
d={}
for line3 in new_lines:d[line3] = d.get(line3,0) + 1
for k, v in d.items():if v > 1: f3.writelines(k)
f1.close()
f2.close()
f3.close()

此脚本还有其他版本:
Python之文本去重(进阶版):https://blog.csdn.net/weixin_42840933/article/details/86605707
Python之文本去重(基础版):https://blog.csdn.net/weixin_42840933/article/details/86577903

Python之文本去重(最终版)相关推荐

  1. python爬虫文本去重_Python微型异步爬虫框架

    Amipy Python微型异步爬虫框架(A micro asynchronous Python website crawler framework) 基于Python 3.5 + 的异步async- ...

  2. java 大数据文本去重_python实现文本去重且不打乱原本顺序

    摘要:这篇Python开发技术栏目下的"python实现文本去重且不打乱原本顺序",介绍的技术点是"Python实现.Python.文本去重.去重.顺序.文本" ...

  3. python文本去重_Python做文本按行去重的实现方法

    文本: 每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行. 思路: 根据字典和字符串切割. 建立一个空字典. 读入文本,并对每行切割前半部分, ...

  4. 上海交通大学出版社python教材答案学生信息管理系统_学生信息管理系统(最终版)...

    <学生信息管理系统.doc>由会员分享,可免费在线阅读全文,更多与<学生信息管理系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1. ...

  5. python 编程入门-python编程入门(第3版)

    python编程入门(第3版)简洁明了,通俗易懂,非常适合初学者,但是我觉得处理大型任务,多线程应该是必不可少的,这对于初学者来说也是需要了解的,当然了,多线程是个复杂的话题,高级用户可以再深入研究, ...

  6. python编程入门第3版pdf-Python编程入门第3版PDF电子书免费下载

    本文档的主要内容详细介绍的是Python编程入门第3版PDF电子书免费下载. Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,自20世纪90年代初诞生至今,逐渐被广泛应用于处理系统 ...

  7. python编程入门第3版pdf-Python编程入门(第3版) PDF扫描版[26MB]

    Python编程入门(第3版)是图文并茂的Python学习参考书,书中并不包含深奥的理论或者高级应用,而是以大量来自实战的例子.屏幕图和详细的解释,用通俗易懂的语言结合常见任务,对Python的各项基 ...

  8. python基本代码教程-Python基础教程(第3版)

    Python基础教程(第3版) 第2版前言 第1版前言 引言 1 快速上手:基础知识 1.1 交互式解释器 1.2 算法是什么 1.3 数和表达式 十六进制.八进制和二进制 1.4 变量 1.5 语句 ...

  9. python编程入门-python编程入门(第3版)

    python编程入门(第3版)简洁明了,通俗易懂,非常适合初学者,但是我觉得处理大型任务,多线程应该是必不可少的,这对于初学者来说也是需要了解的,当然了,多线程是个复杂的话题,高级用户可以再深入研究, ...

最新文章

  1. 神回答:编程到底难在哪里?
  2. python怎样在已有excel文件指定行写入-Python中使用第三方库xlrd来写入Excel文件示例...
  3. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 BasicMessageChannel 通信 )
  4. 判断元素是否在ndarray_暨南大学药学院考研~手性的判断与相关介绍
  5. STM32 BOOT0连接不当造成死机
  6. Robotframework集成jenkins执行用例
  7. c语言变量ppt,C语言程序设计-变量.ppt
  8. 【C++基础】模板参数与模板继承
  9. My97DatePicker详细说明
  10. excel生成mysql语句_通过SQL语句直接实现Excel与数据库的导入导出
  11. Java建造者模式详解
  12. VS中的预先生成事件和后期生成事件
  13. oracle手动 建库_Oracle Create the Database for 11g(手动创建数据库)
  14. python读取一行的函数_Python linecache.getline()读取文件中特定一行的脚本
  15. RTN实时音视频传输网络
  16. Doc2Vec模型介绍及使用
  17. uiautomatorviewer 提示 Error obtaining UI hierarchy 的解决办法
  18. open_table和opened_table的区别
  19. STM8S003超声波测距
  20. 嵌入式方向如何转行?

热门文章

  1. docker:解决重装显卡驱动后,docker中找不到显卡的问题
  2. 诚邀您体验人工智能AI
  3. 识别图片中的文字(ocr)
  4. Watcher--数据变更的通知
  5. python3 多线程操作数据库锁机制问题
  6. C++--读取txt文件中的多行数据
  7. 大赚近900亿美元 巴菲特最新重仓股曝光
  8. 直播礼物特效-B站直播礼物分析
  9. [附源码]SSM计算机毕业设计 宠物医院管理系统JAVA
  10. win10使用C语言运行坦克大战游戏(转载)