我想将两个 python 脚本与 difflib
库进行比较。
其中一个脚本有效,另一个无效。
我使用以下代码来比较两个文件:
import difflib
first_file = 'E:\Elzero_learning\onefirst_file.txt'
second_file = 'E:\Elzero_learning\second_file.txt'
first_file_lines = open (first_file).readlines()
second_file_lines = open (second_file).readlines()
difference = difflib.HtmlDiff.make_file(first_file_lines ,second_file_lines ,first_file ,second_file )
difference_report = open("E:\Elzero_learning\output_file_1.html","w")
difference_report.write(difference)
difference_report.close()
但是我在执行代码时收到此错误回溯:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS E:\Elzero_learning> & C:/python/Python39/python.exe "e:/Elzero_learning/compare files.py"
Traceback (most recent call last):
File "e:\Elzero_learning\compare files.py", line 7, in <module>
difference = difflib.HtmlDiff.make_file(first_file_lines ,second_file_lines ,first_file ,second_file )
File "C:\python\Python39\lib\difflib.py", line 1764, in make_file
return (self._file_template % dict(
AttributeError: 'list' object has no attribute '_file_template'
PS E:\Elzero_learning>
答案 0 :(得分:1)
您需要一个 difflib.HtmlDiff
实例来调用 make_file()
,因此更改:
difference = difflib.HtmlDiff.make_file(...)
到
difference = difflib.HtmlDiff().make_file(...)
在调用其 difflib.HtmlDiff
方法之前创建一个 make_file()
实例。
您可能想查看类 difflib.HtmlDiff
的文档,看看是否有您想要设置的任何默认参数。