#!/usr/bin/python3.5 import glob import re def replace_generator(fn): def replace(match): return '{}\n\n'.format(match.group(0), fn, match.group(2)) return replace for filename in glob.iglob('./**/*.html', recursive=True): try: f = open(filename) data = f.read() f.close() data = re.sub('({%-? block ([a-zA-Z0-9_\-]+) -?%})', replace_generator(filename), data) data = '\n'.format(filename) + data f = open(filename, 'w') f.write(data) f.close() except: import traceback traceback.print_exc()