""" =========================================================================== Post-diffall file comparisons: a simple example of scraping filenames from diffall.py's report, and a useful utility in general [3.3]. Automatically compare the files in all DIFFER lines in a diffall.py final report, by running system commands to show detailed differences. This is an alternative to manual copy/paste of the filenames in the diffall report's '[...] - [...]' lines. Run this in the same folder where diffall ran, unless all paths absolute. Pass one arg: the name of a file where diffall.py's output has been saved. This runs 'diff' commands on Unix and 'fc' commands on Windows for each DIFFER line; the output is these commands' output, separated by '=' lines. See ../../UserGuide.html for license and attribution. =========================================================================== """ import sys, re, os file = sys.argv[1] # 1 arg = file with diffall's report section differ = 'diff' if not sys.platform.startswith('win') else 'fc' ndiffs = 0 for line in open(file, 'r'): match = re.match('^.*DIFFER.*\[(.*)\] - \[(.*)\].*$', line) if match: ndiffs += 1 left, right = match.group(1), match.group(2) print('\n\n', '='*80, sep='') print('[%s] - [%s]' % (left, right)) os.system('%s %s %s' % (differ, left, right)) print('\nNumber diffs:', ndiffs)