11import os
2+ import pathlib
23
34
45class DupeFinder :
@@ -7,7 +8,7 @@ class DupeFinder:
78 """
89
910 @staticmethod
10- def getDuplicateFileNames (directory1 , directory2 ):
11+ def getDuplicateFileNames (directory1 , directory2 , sameExtension = True ):
1112 """
1213 Return a list of duplicate file names in both directories
1314
@@ -24,14 +25,34 @@ def getDuplicateFileNames(directory1, directory2):
2425 A list of the duplicate file names between both directories. If no
2526 duplicate files are found, an empty list is returned
2627 """
27- directory1Files = os .listdir (directory1 )
28- directory2Files = os .listdir (directory2 )
28+ directory1Path = pathlib .Path (directory1 )
29+ directory2Path = pathlib .Path (directory2 )
30+
31+ directory1Files = os .listdir (directory1Path )
32+ directory2Files = os .listdir (directory2Path )
33+
34+ directory1FilesNoExt = {}
35+ directory2FilesNoExt = {}
36+
37+ if sameExtension == False :
38+ for i , file in enumerate (directory1Files ):
39+ purePath = pathlib .Path (directory1 + '/' + file )
40+ directory1FilesNoExt [purePath .stem ] = purePath .suffix
41+ for i , file in enumerate (directory2Files ):
42+ purePath = pathlib .Path (directory2 + '/' + file )
43+ directory2FilesNoExt [purePath .stem ] = purePath .suffix
2944
3045 dupeFiles = []
3146
32- for file in directory1Files :
33- if (file in directory2Files ):
34- dupeFiles .append (file )
47+ if sameExtension :
48+ for file in directory1Files :
49+ if (file in directory2Files ):
50+ dupeFiles .append (file )
51+ else :
52+ for fileName , ext in directory1FilesNoExt .items ():
53+ if fileName in directory2FilesNoExt :
54+ dupeFiles .append (fileName + ext )
55+ // We need to delete both extensions
3556
3657 return dupeFiles
3758
0 commit comments