【发布时间】:2018-10-13 22:25:45
【问题描述】:
假设我有以下简化的文件结构
main_folder
|__ foo.json
|
|__ sub_folder
|__bar.json
我有两份main_folder,例如main_folder_v1 和 main_folder_v2
我想比较两个版本并获取所有不同文件的名称(例如,获取 "foo.json",以防其内容在 main_folder_v2 中更新)
我使用下面的代码
import filecmp
comparison_result = filecmp.dircmp(main_folder_v1, main_folder_v2)
files_that_differs = comparison_result.diff_files
问题是我会得到["foo.json"],以防它在main_folder_v2 中更新,但我永远不会得到["bar.json"],因为似乎没有执行sub_folder 中的文件比较
是否有可能使用filecmp 递归比较文件夹并获取不同的文件名或os.walk() 是唯一的解决方案?
【问题讨论】:
-
os.walk有什么问题 -
我同意@SuperStew 我认为
os.walk和set.symmetric_difference会处理这个问题 -
@CoryKramer,SuperStew,
os.walk没有任何问题。我只是在寻找像comparison_result.diff_files这样简单的解决方案。如果没有这样的解决方案,我将使用os.walk...
标签: python python-3.x file-comparison