Python:无法比较两个目录

时间:2016-06-08 15:29:48

标签: python python-2.7 diff

我有两个目录(下面)我想要比较

左:

C:\Temp\Sync\GUI\config.xml
C:\Temp\Sync\GUI\jobs
C:\Temp\Sync\GUI\jobs\Add
C:\Temp\Sync\GUI\jobs\Add\builds
C:\Temp\Sync\GUI\jobs\Add\config.xml
C:\Temp\Sync\GUI\jobs\Add\builds\legacyIds
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskAlgo\builds
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskAlgo\config.xml
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskAlgo\builds\legacyIds
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskCare\builds
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskCare\config.xml
C:\Temp\Sync\Risk\jobs\TOP_Deriv_RiskCare\builds\legacyIds

右:

C:\Temp\tmptm4bod\GUI\config.xml
C:\Temp\tmptm4bod\GUI\jobs
C:\Temp\tmptm4bod\GUI\jobs\Add
C:\Temp\tmptm4bod\GUI\jobs\Add\builds
C:\Temp\tmptm4bod\GUI\jobs\Add\config.xml
C:\Temp\tmptm4bod\GUI\jobs\Add\builds\legacyIds
C:\Temp\tmptm4bod\Newfolder\config.xml
C:\Temp\tmptm4bod\Newfolder\jobs
C:\Temp\tmptm4bod\Newfolder\jobs\Deriv_Amend
C:\Temp\tmptm4bod\Newfolder\jobs\Deriv_Amend\builds
C:\Temp\tmptm4bod\Newfolder\jobs\Deriv_Amend\config.xml
C:\Temp\tmptm4bod\Newfolder\jobs\Deriv_Amend\builds\legacyId

当我进行比较时,会列出右边的'NewFolder'目录,但不会列出其中的文件,我不明白。

syncdStoredJobs =  os.path.join(workspace, "storedJobs")    
comparisonDiff = filecmp.dircmp(syncdStoredJobs, cleanJobsDir, [], []) 

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

根据docs,dircmp只会递归到公共目录中,并且只有你告诉它。

如果一个子目录只存在于一侧,那么它的内容也是如此。

有可能构建一个使用dircmp来执行您想要的实用程序功能。基本上只需查找仅存在于一侧的目录,然后再进行操作。