excel学习库

excel表格_excel函数公式大全_execl从入门到精通

python项目实战:文件数据对比,小白看了都会,值得收藏

python因为其简单易学,数据开源,并且功能强大,因此受到很多程序员的欢迎,下面我来手把手的教你用python做项目,希望能够帮到各位。 为了方便大家的了解,我对各个函数的功能和代码都加了注释,一般即使没有编程经验的人也能够轻而易举的看懂以下代码(该代码复制后也可以直接运行,不过其中加载的库本地需要安装得有,比如difflib库,win32api等)。
下面简单介绍该项目的内容:该项目是为了实现对文本和excel数据的对比,并将两个文件中不同的部分标记出来。保存到对应的比对结果中,废话不多说,我们来看看对应的代码。具体代码如下: import sys import difflib import win32ui import xlrd import xlwt import win32api,win32con # ============================================================================= # # 读取配置文件函数 def read_file(file_name): try: file_handle = open(file_name, 'r',encoding='ANSI') text = file_handle.read().splitlines() # 读取后以行进行分割 file_handle.close() return text except IOError as error: print('Read file Error: {0}'.format(error)) sys.exit() # #打开并获取文件路径1 def getcompFileName1(file1_name): dlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框 dlg.SetOFNInitialDir('E:/') # 设置打开文件对话框中的初始显示目录 dlg.DoModal() filename = dlg.GetPathName() # 获取选择的文件名称 file1_name = filename return file1_name # #打开并获取文件路径2 def getcompFileName2(file2_name): file2_name = filename return file2_name
已下架 # # 比较两个文件并输出html格式的结果 def compare_file(file1_name, file2_name): if file1_name == "" or file2_name == "": print('文件路径不能为空:file1_name的路径为:{0},file2_name的路径为:{1} .'.format(file1_name, file2_name)) text1_lines = read_file(file1_name) text2_lines = read_file(file2_name) diff = difflib.HtmlDiff() # 创建htmldiff 对象 result = diff.make_file(text1_lines, text2_lines) # 通过make_file 方法输出 html 格式的对比结果 # 将结果保存到比较结果.html文件中并打开 with open('文本比较结果.html', 'w') as result_file: #同 f = open('文本比对结果.html', 'w') 打开或创建一个比对结果.html文件 result_file.write(result) #同 f.write(result) win32api.MessageBox(0,"比对结束,结果存放在当前目录的文本比较结果.html中","程序运行结束",win32con.MB_OK) print ('写入html文件错误:{0}'.format(error)) # # 比较两个excel文件并输出excel格式的结果 # 输入两个excel文件进行比较 def compare_excel(file1_name, file2_name): open_excel1 = xlrd.open_workbook(file1_name) #用于比较的第一个文件 open_excel2 = xlrd.open_workbook(file2_name)#用于比较的第二个文件 result_excel = xlwt.Workbook() #创建一个文件用来存放比较结果 excel1_name = open_excel1.sheet_names() comp_restult = result_excel.add_sheet("excel数据比对结果") tp = open_excel1.sheet_by_name(excel1_name[0]) #打开excel文件中的第一个表格 excel2_name = open_excel2.sheet_names() tp1 = open_excel2.sheet_by_name(excel2_name[0]) for i in range(tp.nrows): for j in range(tp.ncols): if str(tp.cell(i,j).value) != str(tp1.cell(i,j).value): #将两个excel表格中同行同列进行比较 style = xlwt.easyxf('font:bold 1, color blue;') #设置不匹配内容的字体及其颜色 result = str(tp.cell(i,j).value) + "和" + str(tp1.cell(i,j).value) + "不匹配" comp_restult.write(i, j, result, style) else: comp_restult.write(i, j, tp.cell(i,j).value) result_excel.save('excel比对结果.xls') win32api.MessageBox(0,"比对结束,结果存放在当前目录的excel比对结果.xls中","程序运行结束",win32con.MB_OK) # 调用各个函数运行得到对应的结果 if __name__ == "__main__": file1_name = " " file1 = getcompFileName1(file1_name) file2_name = " " file2 = getcompFileName2(file2_name) if (file1.endswith('.txt')) and (file2.endswith('.txt')): #在同为文本的时候进行比较 compare_file(file1, file2) else: compare_excel(file1, file2) #excel文件比较结果 部分代码示意图:该项目的部分代码示意图上述代码变编译后即可运行,具体操作如下:运行后后大约过了3秒钟,会弹出文件选择对话框。
这里需要注意的是,该工具只是针对两个文件都是文本模式或者都是excel模式的文件进行对比,所以选择对比文件的时候不能一个是excel,而另一个是txt文本。目前该工具也只支持文本和excel文件的对比。弹出选择文件的界面如下图:在弹出的对话框中选择对应的文件打开两个对比的文件后,软件会自动运行,将两个文件进行对比,对比完成后会有对应的提示,然后单击确定即可。如下图:运行结束后的对话框我们打开软件目录,既可以看到比对结果,如下图:excel数据表比对后结果存放目录双击打开对应的比对结果,既可以看到标亮的地方就是两个文件不相同的地方,如下图:excel比对结果示例文本模式的对比方式类似,只是在最终对比结果中,文本模式转化成了html模式。 这就是今天为大家分享的python项目实战代码,希望大家喜欢!也希望大家多多关注点赞,祝各位生活愉快!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接