在 Python 中使用 difflib 比较两个 .txt 文件
我正在尝试比较两个文本文件并输出比较文件中不匹配的第一个字符串,但由于我对 python 非常陌生,所以遇到了困难。 任何人都可以给我一个使用该模块的示例方法吗?
当我尝试类似的操作时:
result = difflib.SequenceMatcher(None, testFile, comparisonFile)
我收到一条错误消息,指出“文件”类型的对象没有 len。
I am trying to compare two text files and output the first string in the comparison file that does not match but am having difficulty since I am very new to python. Can anybody please give me a sample way to use this module.
When I try something like:
result = difflib.SequenceMatcher(None, testFile, comparisonFile)
I get an error saying object of type 'file' has no len.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
对于初学者,您需要将字符串传递给 difflib.SequenceMatcher,而不是文件:
这将修复您的错误。
要获取第一个不匹配的字符串,请参阅 difflib 文档。
For starters, you need to pass strings to difflib.SequenceMatcher, not files:
That'll fix your error.
To get the first non-matching string, see the difflib documentation.
这是使用 Python difflib 比较两个文件内容的快速示例...
Here is a quick example of comparing the contents of two files using Python difflib...
您确定这两个文件都存在吗?
刚刚测试了一下,我得到了完美的结果。
为了获得结果,我使用类似的方法:
每行的第一个字符指示它们是否不同:
例如:“+”表示已添加以下行等。
Are you sure both files exist ?
Just tested it and i get a perfect result.
To get the results i use something like:
the first character of each line indicates if they are different:
eg.: '+' means the following line has been added, etc.
听起来您可能根本不需要 difflib。 如果您要逐行比较,请尝试以下操作:
It sounds like you may not need difflib at all. If you're comparing line by line, try something like this:
另一种更简单的方法来检查两个文本文件是否逐行相同。 试试看。
否则,你可以使用 python 中的 filecmp 预定义文件。
:)
Another easier method to check whether two text files are same line by line. Try it out.
otherwise, there is a predefined file in python in filecmp which you can use.
:)