zoukankan      html  css  js  c++  java
  • python获取路径下所有SQL脚本的表名

    # -*- coding:UTF8 -*-
    import re
    import os, sys

    #创建临时文件
    tmpfile=open('F:/python/路径下所有文件中表名/tmpfile.txt','w')

    # 打开待分析脚本路径
    path = "E:/XXX/"
    dirs = os.listdir( path )
    print('文件名','表名')

    # 循环路径下所有文件
    for file in dirs:
     #将文件内容输出到一个字符串
     all_the_text =open(path+file,encoding='utf-8').read( )

     #匹配“${SJCK_V_ACCESS}.”+匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
     pattern = re.compile(r'\$\{SJCK_V_ACCESS\}\.\w*')


     #字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回
     it = pattern.finditer(all_the_text)
     for match in it:
      #替换字符串中的匹配项,把${SJCK_V_ACCESS}.替换成空
      tablename = re.sub(r'\$\{SJCK_V_ACCESS\}\.', "", match.group())
      #打印 文件名,表名
      print(file,tablename)

      #结果追加入临时文件
      tmpfile.write(file+" "+tablename + '\n')


    #关闭临时文件
    tmpfile.close()

    #文件内容行去重
    list01=[]
    for i in open('F:/python/路径下所有文件中表名/tmpfile.txt'):
     if i in list01:
      continue
     list01.append(i)
    with open('F:/python/路径下所有文件中表名/resultfile.txt','w') as s:
     s.writelines(list01)

  • 相关阅读:
    CF1051F The Shortest Statement 题解
    CF819B Mister B and PR Shifts 题解
    HDU3686 Traffic Real Time Query System 题解
    HDU 5969 最大的位或 题解
    P3295 萌萌哒 题解
    BZOJ1854 连续攻击游戏 题解
    使用Python编写的对拍程序
    CF796C Bank Hacking 题解
    BZOJ2200 道路与航线 题解
    USACO07NOV Cow Relays G 题解
  • 原文地址:https://www.cnblogs.com/Pigs/p/15457392.html
Copyright © 2011-2022 走看看