Index: gexpose.py =================================================================== --- gexpose.py (revision 3190) +++ gexpose.py (working copy) @@ -574,24 +574,27 @@ start_pattern = ' //~ BEGIN GENERATED REGION -- DO NOT EDIT SEE gexpose.py' end_pattern = ' //~ END GENERATED REGION -- DO NOT EDIT SEE gexpose.py' output = [] - f = file(filename, 'r') - for line in f: - if line.startswith(start_pattern): - in_generated = True - start_found = True - elif line.startswith(end_pattern): - in_generated = False - end_found = True - output.append('%s\n%s\n%s\n' % (start_pattern, generated, end_pattern)) - elif in_generated: - continue - else: - output.append(line) - f.close() - if not start_found: - raise 'pattern [%s] not found in %s' % (start_pattern, filename) - if not end_found: - raise 'pattern [%s] not found in %s' % (end_pattern, filename) + if os.path.exists(filename): + f = file(filename, 'r') + for line in f: + if line.startswith(start_pattern): + in_generated = True + start_found = True + elif line.startswith(end_pattern): + in_generated = False + end_found = True + output.append('%s\n%s\n%s\n' % (start_pattern, generated, end_pattern)) + elif in_generated: + continue + else: + output.append(line) + f.close() + if not start_found: + raise 'pattern [%s] not found in %s' % (start_pattern, filename) + if not end_found: + raise 'pattern [%s] not found in %s' % (end_pattern, filename) + else: + output.append('%s\n%s\n%s\n' % (start_pattern, generated, end_pattern)) f = file(filename, 'w') f.write("".join(output)) f.close()