1,VBA代码:
Sub mname() '批量修改多个excel内指定的工作表的表名 Dim filename As String, twb As Workbook '定义变量 Application.ScreenUpdating = False '关闭屏幕更新 Application.DisplayAlerts = False '不显示需要确定删除的警告信息 filename = Dir(ThisWorkbook.Path & "xlsx" & "*.xlsx") '获得五座神山文件下的所有工作表的名字 Do While filename <> "" '若工作簿名字不为空,执行循环体; fn = ThisWorkbook.Path & "xlsx" & filename '设置fn为路径; Set twb = Workbooks.Open(fn) '打开五座神山文件下的工作簿; twb.Worksheets(1).Name = "Sheet1" '修改第一个工作表的表名为“神山小百科” twb.Close True '保存并关闭工作簿 filename = Dir '继续下一个工作簿 Loop Application.DisplayAlerts = True '恢复提示警告信息 Application.DisplayAlerts = True '开启提示 End Sub
2,脚本运行:ren *.xls *.xlsx
3,Python代码:
#!/usr/bin/env python # -*- coding:utf-8 -*- #导入正则模块 import re #导入os模块,本例用它来做文件写入操作 import os #导入日志模块 import logging import logging.handlers import xlwt import xlrd # 写txt的方法 def writeTxt(result): # 打开文件,a代表追加 f=open(r'./result_****.txt','a', encoding='utf-8') # f=open(r'D:/tmp/phoneDir/00_source/一无所有/result_一无所有.txt','a', encoding='utf-8') # 写入数据result f.write(result) # 关闭文件 f.close() # 遍历文件+采集手机号的方法 def count(dirname='D:/tmp/phoneDir/00_source/***/00txt'): #----------------------日志相关--------------------------- #日志文件名,根据自己的需要改名字 LOG_FILE = './classOne.log' handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes = 1024*1024, backupCount = 5) fmt = '%(asctime)s - %(filename)s:%(lineno)s - %(name)s - %(message)s' formatter = logging.Formatter(fmt) handler.setFormatter(formatter) logger = logging.getLogger('tst') logger.addHandler(handler) logger.setLevel(logging.DEBUG) #-----------------------正则-------------------------------- #手机号正则 pattern_mob = re.compile('1[3|4|5|7|8]d{9}') #---------------------统计文件------------------------------ # 记录文件总数的变量 count=0 # 记录含手机号文件数的变量 num=0 # 遍历文件夹下的所有文件,包括文件夹 for root, dirs, files in os.walk(dirname): # 得到每个文件夹下文件数量 fileLength = len(files) # -------------------将每个文件夹下的文件数量加到总数中 count = count + fileLength for i in files: # 将文件名与路径拼接成全路径 f = open(dirname+'/'+i,'r+', encoding='utf-8') # -----------------抓取手机号,正则查找文件里匹配的字符 result = pattern_mob.findall(f.read()) if result: # ---------------统计含手机号的文件数,如果result不为空,则说明含手机号,则num计数器加1 num += 1 # -------------------调用函数,将手机号写入文件 writeTxt(str(result)+' ') #--------------------将文件总数、有手机号的文件数写入日志 logger.info("the total num is %s, the target num is %s",count,num) # 主函数 if __name__ == '__main__': # 调用count()h函数 count()
4:SQL代码:
SELECT * FROM cdr_log a where a.calldate = (SELECT MIN(a.calldate)) SELECT a.dst , MIN(a.calldate) FROM cdr_log a WHERE a.calldate > '20190626' GROUP BY a.dst SELECT * FROM cdr_log a WHERE a.dst = '13387306853' #所有联系方式初次打电话时间。 SELECT a.dst , MIN(a.calldate) FROM cdr_log a GROUP BY a.dst