首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印python difflib文件中的行数

打印python difflib文件中的行数
EN

Stack Overflow用户
提问于 2016-03-09 18:09:52
回答 1查看 1.2K关注 0票数 0

我正在使用Python中的difflib来找出两个文本文件之间的区别。我可以打印在新文件中添加或删除的文本。但我想打印修改是在哪一行进行的。即使我知道如何计算文件中的行数,我也无法打印已添加或删除的行。我的代码如下:

代码语言:javascript
复制
import difflib
import time


def get_diff(old_file, new_file):
    f1 = open(old_file, 'r')
    f2 = open(new_file, 'r')

    old_file = f1.readlines()
    new_file = f2.readlines()

    diff = difflib.unified_diff(old_file, new_file, lineterm='')
    lines = list(diff)[2:]
    added = [lineA for lineA in lines if lineA[0] == '+']


    with open("output.txt", "w") as fh1:
     for line in added:
       fh1.write(line)
    print '+',added
    removed = [lineB for lineB in lines if lineB[0] == '-']
    with open("output.txt", "a") as fh1:
     for line in removed:
       fh1.write(line)
    print '-',removed


if __name__ == '__main__':
    fh = get_diff("ex.txt","ex2.txt")

提前感谢您:)

EN

回答 1

Stack Overflow用户

发布于 2016-03-09 18:13:41

unified diff已经包含了关于不同行的信息:

代码语言:javascript
复制
--- before.py
+++ after.py
@@ -1,4 +1,4 @@
-bacon
-eggs
-ham
+python
+eggy
+hamster
 guido

第三行@@ -1,4 +1,4 @@告诉您更改的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35888549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档