我有以下测试文件
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('#')]
)
...