使用Python区分两个文件夹(如Linux中的diff工具)

时间:2011-08-18 01:22:29

标签: python arrays diff directory file-diffs

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

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

我唯一的另一个想法就是从命令行调用diff等,但这并没有解决我的任何问题(在数组中获取文件而不需要GNU工具)。

任何人都可以帮助我吗?我仍然在python中完全磨砂,非常感谢专家的建议。谢谢!

1 个答案:

答案 0 :(得分:7)

似乎filecmp.dircmp做了你想要的。如果比较两个目录,diff_files将是两个目录中的文件列表,但其内容不同:

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

正如Jonathanb指出的那样,如果你想要实际的差异,那么此时很容易使用difflib