使用Python对比两个文件夹(类似Linux中的diff工具)
我正在尝试写一个项目,这个项目里会有一些自动化的组件。其中一个需求是对比两个文件夹,找出不同的文件,并把这些不同的文件放到一个字符串数组里。Dircmp可以做到一部分,它能找出不同的文件。但是,它似乎并没有深入到剩下的文件中去比较,看看哪些文件在不同的文件夹中是不同的。
目前我试过了difflib和filecmp,除非我做错了什么,否则我找不到一个简单的方法来实现我想要的功能,而不需要从头开始写。之所以需要这个功能,是因为这个Python脚本会在Windows系统上运行,而标准的Linux对比工具在那儿是用不了的。
我唯一想到的办法就是从命令行直接调用diff等工具,但这并不能解决我的两个问题(把不同的文件放到一个数组里,并且不需要GNU工具)。
有没有人能帮我一下?我在Python方面还是个新手,非常感谢大家的专业建议!
1 个回答
7
看起来 filecmp.dircmp
已经可以满足你的需求了。如果你比较两个文件夹,diff_files
会列出那些在两个文件夹里都有,但内容不同的文件:
>>> dc = filecmp.dircmp('dir1', 'dir2')
>>> dc.diff_files
<<< ['foo']