-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdirdiff.py
38 lines (34 loc) · 1.11 KB
/
dirdiff.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import os, sys
def reportdiffs(unique1, unique2, dir1, dir2):
if not(unique1 or unique2):
print('Directory lists are indetical')
else:
if unique1:
print("Files unique to", dir1)
for file in unique1:
print('...', file)
if unique2:
print("Files unique to", dir2)
for file in unique2:
print('...', file)
def difference(seq1, seq2):
return [item for item in seq1 if item not in seq2]
def comparedirs(dir1, dir2, files1=None, files2=None):
print('Comparing', dir1, 'to', dir2)
files1 = os.listdir(dir1) if files1 is None else files1
files2 = os.listdir(dir2) if files2 is None else files2
unique1 = difference(files1, files2)
unique2 = difference(files2, files1)
reportdiffs(unique1, unique2, dir1, dir2)
return not(unique1 or unique2)
def getargs():
try:
dir1, dir2 = sys.argv[1:]
except:
print('Usage: dirdiff.py dir1 dir2')
sys.exit(1)
else:
return(dir1, dir2)
if __name__ == '__main__':
dir1, dir2 = getargs()
comparedirs(dir1, dir2)