• 全文检索关键字


    # -*- coding: utf-8 -*-
    """
    1、获取excel表中api接口名称列表
    2、在封装的接口库中比对搜索关键字
    3、接口名存在记为1,否则为0,写入excel表中
    """
    
    import xlwt, xlrd
    import io
    
    # 记录列数,全局变量,还原方便
    columnIndex = 0
    # 记录行数
    rowIndex = 1
    # 记录任务个数
    taskCount = 0
    
    
    # 读excel
    def ReadExcel(filepath):
        xlsx = xlrd.open_workbook(filepath)  # 打开文件
        print('All sheets: %s' % xlsx.sheet_names())  # 查看所有sheet列表
        sheet1 = xlsx.sheets()[1]  # 获得第1张sheet,索引从0开始
        sheet1_name = sheet1.name  # 获得名称
        sheet1_cols = sheet1.ncols  # 获得列数
        sheet1_nrows = sheet1.nrows  # 获得行数
        print('Sheet1 Name: %s\nSheet1 cols: %s\nSheet1 rows: %s' % (sheet1_name, sheet1_cols, sheet1_nrows))
        print('-----------------接口列表----------------')
        api_name = []
        for i in range(1, sheet1_nrows):  # 逐行打印sheet1数据
            print(sheet1.row_values(i))   # 打印全文
            if sheet1.row(i)[1].value != '':  # 读取2列
                api_name.append(sheet1.row(i)[1].value.encode('UTF-8'))   # 读取的excel值是unicode字符集转uft8编码
                #api_name.append(sheet1.row(i)[1].value)
        print(api_name)
        return api_name
    
    # 直接读取文件内容检索,适合一般大小文件
    def content_search1(filepath, keyword):
        with open(filepath, 'r') as f:
            content = f.read()
        #print(content)
        if keyword in content:
            return True
        return False
    
    # 按行检索关键字,适合大文件
    def content_search(filepath, keyword):
        f = open(filepath, 'r')
        for line in f:
            if keyword in line:
                f.close()
                return True
        f.close()
        return False
    
    
    if __name__ == '__main__':
    
        # 读取api接口名
        filepath = 'Hub接口用例情况统计.xlsx'
        api_name_list = ReadExcel(filepath)
    
        # 用例地址
        file_path = 'iot_hub.py'
    
        # 使用xlwt模块
        wb = xlwt.Workbook(encoding='utf-8')
        ws = wb.add_sheet('统计', cell_overwrite_ok=True)
    
        title_list = ['接口名', '是否封装']
    
        # 用例标题写入excel首行
        for j in range(0, len(title_list)):
            ws.write(0, j, title_list[j])
            j += 1
        r_true = 0
        r_false = 0
        for i in range(0, len(api_name_list)):
            api_name = api_name_list[i]  # 检索的keyword
            flag = content_search(file_path, api_name_list[i])  # 是否存在
            if flag:
                r_true += 1
            else:
                r_false += 1
            taskCount += 1  # 任务个数
            ws.write(rowIndex, columnIndex, api_name)  # 写任务id
            ws.write(rowIndex, columnIndex + 1, flag)  # 写任务name
            i += 1
    
            rowIndex += 1
    
        print('任务总数%s:' % taskCount)
        print('True %d False %d', r_true, r_false)
    
        # 保存Excel文档
        wb.save('统计表.xls')
    

      

  • 相关阅读:
    Android 性能优化 四 布局优化merge标签的使用
    一种Android换肤机制的实现
    java提高篇(十)-----详解匿名内部类 ,形参为什么要用final
    Android源码之Matrix
    android 沉浸式状态栏
    [置顶]关于java中根据身份证求生日和年龄的问题
    将博客搬至CSDN
    android——fragment长时间home或者锁屏java.lang.IllegalArgumentException:No view found for id for....
    百度搜索附近加盟店等基于LBS云搜索功能的实现
    android——拍照,相册图片剪切其实就这么简单
  • 原文地址:https://www.cnblogs.com/relustarry/p/16110972.html
Copyright © 2020-2023  润新知