import argparseparse = argparse.ArgumentParser();
## 对比文件1 的路径+名称
parse.add_argument('--file_a','-a',default = './file1',help = 'txt_df.py -a ** input file a name')
## 对比文件2 的名路径+称
parse.add_argument('--file_b','-b',default = './file2',help = 'txt_df.py -b ** input file b name')
## 将差异写入 新文件中 ,新文件的位置
parse.add_argument('--save_df','-s',default = './df_file',help = 'txt_df.py -s ** save different to file')
args = parse.parse_args()file1 = args.file_a
file2 = args.file_b
save_file = args.save_dfdict_a = {}
dict_b = {}
list_a = []
list_b = []list_add = []f1 = '{}.txt'.format(file1)   ## gen
f2 = '{}.txt'.format(file2)   ## old
f_save = '{}.txt'.format(save_file)a = open(f1,'r')
## 去除无关注解,并以文件中的 '=' 区分键值对
for line_a in a.readlines():if ("=" not in line_a):continueelse:line_a = str(line_a).replace(" ","")line_a = str(line_a).replace("\t","")line_a = str(line_a).replace("\n","")dict_a[line_a.split("=")[0]] = line_a.split("=")[1] list_a.append(line_a.split("=")[0])
a.close()b = open(f2,'r')
for line_b in b.readlines():if ('=' not in line_b):continueelse:line_b= str(line_b).replace(" ","")line_b = str(line_b).replace("\t","")line_b = str(line_b).replace("\n","")line_bb = line_b.split("#")[0]dict_b[line_bb.split("=")[0]] = line_bb.split("=")[1]list_b.append(line_bb.split("=")[0])
b.close()with open(f_save,'w') as ff:ff.write("#gen txt have, old txt not have : \n")for item in dict_a.items():key_a = item[0]value_a = item[1]if key_a not in list_b:ff.write("{0}\t\t=\t\t{1}\n".format(key_a,value_a))ff.write("#old txt have,gen txt not have : \n")for item in dict_b.items():key_b = item[0]value_b = item[1]if key_b not in list_a:ff.write("{0}\t\t=\t\t{1}\n".format(key_b,value_b))list_add.append(key_b)ff.close()
print("{} df_file write done ~~".format(file1))######## wite gen not have param to gen_txtbbb = open(f2,'r')
with open (f1,'a') as fff:fff.write("#{}\n# {}\n".format(41*'-','Old file parameter :'))for lin in bbb.readlines():for ll in list_add:if (ll in lin):#   print(lin)fff.write("{}\n".format(lin))fff.close()
bbb.close()
print("{} update gen txt file~ ".format(file1))

python对比两个文本差异,将差异写入新文件中相关推荐

  1. 【最新实用版】Python批量将pdf文本提取并存储到txt文件中

    #注意:笔者在2021/11/11当天调试过这个代码是可用的,由于pdfminer版本的更新,网络上大多数的语法没有更新,我也是找了好久的文章才修正了我的代码,仅供学习参考. 1.把pdf文件移动到本 ...

  2. python爬取微博数据存入数据库_Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  3. 使用python对比两个目录下的文件名差异

    前言 在做深度学习图像识别相关的项目,经常会使用到标注工具对图像进行标注,然后会在对应文件夹下生成文件名相同的标签文件,比如000023.jpg,标注后会生成000023.xml,或都000023.t ...

  4. R语言ggcharts包的dumbbell_chart函数可视化哑铃图(对比两个年份数据的差异)、scale_y_continuous函数中的labels参数自定义设置X轴坐标标签的格式

    R语言ggplot2可视化:使用ggcharts包的dumbbell_chart函数可视化哑铃图(对比两个年份数据的差异).使用scale_y_continuous函数中的labels参数自定义设置X ...

  5. 快速对比两张工作表数据差异——《超级处理器》应用

    如何快速对比两个工作表数据差异?比如,有下面两张表,一张是审核前的,一张是审核后的,怎么快速找出两张表中不同的单元格. 生产报表审核后 生产报表审核前 我们很难一眼看出两个表的差异,我们用超级处理器来 ...

  6. python 对比两张图片是否相同

    python 对比两张图片是否相同 说明 说明 适用于对比两张图片是否完全相同 需要两张图片的大小完全一致 代码来源于网络,进行微调 from PIL import Image from PIL im ...

  7. 程序员面试金典——解题总结: 9.18高难度题 18.5有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离

    #include <iostream> #include <stdio.h> #include <vector> #include <string> # ...

  8. python使用FPDF包将多个图像文件写入pdf文件实战

    python使用FPDF包将多个图像文件写入pdf文件实战 目录 python使用FPDF包将多个图像文件写入pdf文件实战 #FPDF包安装

  9. Python检测U盘插入、自动复制文件并写入新文件

    技术要点: 1)如何检测有U盘插入: 2)如何复制目录树: 3)如果U盘可写,如何写入新文件. 思考一下,然后到文末查看参考代码. ----------相关阅读---------- 教学课件 1900 ...

最新文章

  1. Android教程之使用LiveAndroid来测试应用
  2. 腾讯/字节/华为/旷视 2022届实习面经—计算机视觉方向
  3. 第三次Python作业———林东
  4. 梅朵是藏语鲜花的意思
  5. 如何构建一个真实的推荐系统?
  6. VB实现6大排序算法---动态过程展示(建议收藏)
  7. java内存泄漏和内存溢出_Java和内存泄漏
  8. linux_ls命令详解
  9. 后缀数组的学习(一):学习的预备知识
  10. ruby wxruby rubytk的安装
  11. Linux Unix shell 编程指南学习笔记(第二部分)
  12. BP算法推导-softmax层+交叉熵(logloss)
  13. ShuffleNet 算法的介绍
  14. 如何禁止拼音加加自动修改IE首页
  15. 「捷径」解读:iOS 自动化的 3.0 时代
  16. 安全邮箱怎么注册?邮箱地址是什么?怎么写?快速了解tomvip邮箱
  17. centos7安装mplayer+smplayer
  18. Linux部署k8s集群
  19. uboot bootargs bootcmd bootm
  20. 一个学机械的中年人半年时间入门物联网嵌入式的历程

热门文章

  1. 小程序开发经验分享(2)前端开发
  2. UBpay——UBTC的生态布局之一
  3. 相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)
  4. win11摄像头黑了用不了的七个解决办法
  5. 如何用数学课件制作工具验证三角形的内角和
  6. python3中情感分类_python中的情感分类
  7. 【框架学习】spring简介
  8. 简单查询多个宅急送物流详情,并分析派件延误
  9. 金蝶EAS通过第三方系统单点登录
  10. 华为是怎么研发的(17)——组织氛围