Skip to content

Instantly share code, notes, and snippets.

@lygaret
Forked from dakrone/diffrecurse.py
Created March 3, 2010 20:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lygaret/320957 to your computer and use it in GitHub Desktop.
Save lygaret/320957 to your computer and use it in GitHub Desktop.
recursive diff
#!/usr/bin/env python
import os
import sys
from os.path import join
expectedFiles = []
actualFiles = []
returnValue = 0
expectedFolder = sys.argv[1]
actualFolder = sys.argv[2]
def buildNames(d, array):
for filename in os.listdir(d):
if os.path.isfile(join(d, filename)):
array.append((filename, join(d, filename)))
else:
buildNames(join(d, filename), array)
def compareFiles(filename1, filename2):
try:
f = open(filename1, 'r')
g = open(filename2, 'r')
for lines in zip(f.readlines(), g.readlines()):
if lines[0] != lines[1]:
print "Files Different"
return False
return True
except IOError as (errno, strerror):
print "Couldn't read the files! IO Error({0}): {1}" % (errno, strerror)
finally:
f.close()
g.close()
buildNames(expectedFolder, expectedFiles)
buildNames(actualFolder, actualFiles)
print expectedFiles
print actualFiles
for ((expected, x), (actual, y)) in zip(expectedFiles, actualFiles):
if expected != actual:
print "Directories Different"
sys.exit(-1)
returnValue = 0
for combined in zip(expectedFiles, actualFiles):
print combined[0][1]
if not compareFiles(combined[0][1], combined[1][1]):
returnValue = -1
sys.exit(returnValue)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment