我有一个文件路径列表。对于每个列表元素,我添加了两个字符串A和B,这样文件的绝对路径就是:file1=A+listlemet和file2=B+listlement。我需要检查一下文件是否相同。如果相同,则忽略。如果不相同,则打印行号并显示这些行号与给定行号的比较。你知道吗
我试过这样的方法:
with open(file1, 'r') as filea:
with open(file2, 'r') as fileb:
diff = difflib.unified_diff(filea.readlines(),fileb.readlines(),fromfile=os.path.basename(file1),tofile=os.path.basename(file2))
for line in diff:
sys.stdout.write(line)
但它不会为其中一个或两个文件中不同的每个行号提供合并输出
假设我有一个文本文件:
a
s
s
s
d
ssasa
另一种是:
a
s
d
ere
ewrwer
werewr
我得到的输出是:
--- asd.txt
+++ asd1.txt
@@ -1,11 +1,8 @@
a
s
-s
-s
d
+ere
+ewrwer
-
-
-
-ssasa+werewr
但是,我需要输出与行号打印,然后在该行的差异为每个文件
控制台中的所需输出:
Comparing files file1 and file2
3: file1:s,file2:d
4: file1:s, file2:ere
5: file1:d
6: file2:ewrwer
8: file2:werewr
11: file1:ssasa
给定所需的输出,您可能更喜欢使用
filecmp
和以下函数:相关问题 更多 >
编程相关推荐