比较Python中的两个文件,忽略比较评论的行



我有以下测试文件

testfile1输出:

   put returns between paragraphs
   for linebreak add 2 spaces at end
   indent code by 4 spaces

testfile2输出:

   put returns between paragraphs
   for linebreak add 2 spaces at end
   indent code by 4 spaces
   #commented out

我想比较两个文件并仅打印差异输出。如果在线开始时有任何评论忽略以比较这些行。

以下是我尝试的代码:

import difflib
with open('testfile1') as text1, open('testfile2') as text2:
    diff = difflib.ndiff(text1.readlines(), text2.readlines())
with open('diff.txt', 'w') as result:
    for line in diff:
        result.write(line)

输出:

 put returns between paragraphs
 for linebreak add 2 spaces at end
 indent code by 4 spaces
+ #commented

预期输出:

 put returns between paragraphs
 for linebreak add 2 spaces at end
 indent code by 4 spaces

并打印"无更改"

我将使用列表理解消除#标记的行:

...
with open('testfile1') as text1, open('testfile2') as text2:
    diff = difflib.ndiff(
        [line for line in text1 if not line.startswith('#')],
        [line for line in text2 if not line.startswith('#')]
        )
...

最新更新