3

我正在尝试编写一个具有一些自治组件的项目。其中之一是需要区分两个文件夹并将不同的文件吐出到字符串数组中。Dircmp 做了其中的一部分——它吐出不同的文件。但看起来它实际上并没有进入剩余的文件来查看与不同文件夹中的相同文件比较时哪些不同。

目前我已经玩过 difflib 和 filecmp,除非我做错了什么,否则我无法找到一种方法来实现我正在寻找的东西,而无需从头开始编写它。我需要这个的原因是因为这个 python 脚本将部署在标准 linux diff 工具不可用的 windows boxen 上。

我唯一的另一个想法是只从命令行调用 diff 等,但这并不能解决我的任何一个问题(将文件放在数组中并且不需要 GNU 工具)。

谁能帮我?我仍然是 python 的彻底磨砂,非常感谢专家的建议。谢谢!

4

1 回答 1

7

看来这filecmp.dircmp已经是你想要的了。如果您比较两个目录,diff_files将是两个目录中的文件列表,但其内容不同:

>>> dc = filecmp.dircmp('dir1', 'dir2')
>>> dc.diff_files
<<< ['foo']

正如Jonathanb所指出的,如果您想要实际的差异,此时很容易使用difflib

于 2011-08-18T01:55:46.527 回答