我正在使用Python中的difflib来找出两个文本文件之间的区别。我可以打印在新文件中添加或删除的文本。但我想打印修改是在哪一行进行的。即使我知道如何计算文件中的行数,我也无法打印已添加或删除的行。我的代码如下:
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")提前感谢您:)
发布于 2016-03-09 18:13:41
unified diff已经包含了关于不同行的信息:
--- before.py
+++ after.py
@@ -1,4 +1,4 @@
-bacon
-eggs
-ham
+python
+eggy
+hamster
guido第三行@@ -1,4 +1,4 @@告诉您更改的位置。
https://stackoverflow.com/questions/35888549
复制相似问题