美文网首页
通过python检测文件内容完整性

通过python检测文件内容完整性

作者: 步履不停的Suunny | 来源:发表于2018-05-12 16:00 被阅读0次

    如何测试报表转换后的字段是否丢失?

    需求: CSV表格 内容进行提取,然后做其他处理,开发在提取过程中由于表格变更或其他原因,有部分项目条目丢失,因此需要比对子段 。 但是一条一条过,有点考验耐心,花了半天时间,写了个小程序完成。

    源表和目标表格如下,要比对的内容是转换后表格中每项内容是否都存在:


    源表.png 目标表.png

    代码如下:

    #-*- coding:utf-8 -*-
    import xlrd
    import sys
    
    def get_exceldata(fileDir):
        workbook = xlrd.open_workbook(fileDir)
        table = workbook.sheets()[0]
        # 获取行列
        nrows = table.nrows
        ncols = table.ncols
        #sheet2 = workbook.sheet_by_index(0)  # sheet索引从0开始
    
        # print(nrows, ncols)
        for i in range(nrows):  # 循环逐行打印
            # 获取第一列数据
            excel_datas = table.cell_value(i, 0)
            return excel_datas
    
    def check_translateData():
        #get Excel data
        #fileDir = "E:\\test-tmp\\Excel\\2017年4月中化石油有限公司利润表.xlsx"
        fileDir = sys.argv[1]  # 获取生成后的Excel表
        #print (fileDir)
        excel_data = get_exceldata(fileDir)
    
        #get src file data
        #srcfile = 'E:\\test-tmp\\Excel\\1.txt'
        srcfile = sys.argv[2]   #获取源表
        with open(srcfile,encoding='utf-8',errors='ignore' ) as f:
            file_data = f.readlines()
            for title in file_data:
                if len(title)>1:  #空行len(title) ==1, 过滤空行
                    if excel_data.find( title.split()[0]):
                        print ("find ",title.split()[0].lstrip())
                        pass
                    else:
                        print ("Can't find ",title.split()[0].lstrip())
                        return -1
    def main():
        #src_cvs()
        print("开始运行!")
        #print (len(sys.argv))
        if len (sys.argv) < 3:
            argv_msg = "缺少参数,请依次输入转换后表格和SAP源表格,执行命令示例如下:"
            example_msg = 'python3 excel_check.py 转换后表格文件 源表格文件'
            print(argv_msg)
            print (example_msg)
            return -1
        else:
            check_translateData()
    
    if __name__ == "__main__":
        main()
    

    运行结果,即因此查找src中的每个字段是否在Excel中存在。
    遇到的问题:

    1、python带参数运行
    2、Excel表格处理
    3、TXT文件处理

    文件打开要用utf-8格式
    with open(srcfile,encoding='utf-8',errors='ignore' ) as f:
    

    4、低内聚高耦合??

    其他没用到的代码:

    def src_txt():
        with open('E:\\test-tmp\\Excel\\1.txt',encoding='utf-8',errors='ignore' ) as f:
            reader = f.readlines()
            for title in reader:
                if len(title)>1:
                    #print(len(title))
                    print (title.split()[0])
    
    
    
    def src_cvs():
        with open('E:\\test-tmp\\Excel\\1.XLS', encoding='utf-8', errors='ignore') as f:
            reader = csv.reader(f)
            rows = [row for row in reader]
            print(rows)
    
        pass

    相关文章

      网友评论

          本文标题:通过python检测文件内容完整性

          本文链接:https://www.haomeiwen.com/subject/cbchdftx.html