Just for funsies, I did a slight rewrite using my scription[1] library:
--8<------------------------------------------------------------------------------ #!/usr/bin/python3 """ Convert scanned images: contrast is increased, size is enlarged, format is changed from jpeg to png. """ from __future__ import print_function # only needed if running in 2 from glob import glob from scription import * @Command( threshold=Spec('cutoff value for white vs black', OPTION, type=int, default=66), verify=Spec('confirm conversion by viewing on screen', FLAG), ) def image_convert(verify, threshold): for count, input in enumerate(sorted(glob('*.JPG')), start=1): output = '{0:02d}.png'.format(count) # only prints if --verbose on commandline print('Going to convert {} to {}'.format(input, output)) while True: # Execute automatically parses into a list attempt = Execute( 'convert -threshold {}% {} {}'.format(threshold, input, output), interactive='echo', ) if attempt.returncode: raise SystemExit(attempt.returncode) if not verify: break attempt = Execute( 'display_the_png {}'.format(output), interactive='echo', ) if attempt.returncode: raise SystemExit(attempt.returncode) if get_response('Does the image look good?'): break threshold = get_response("New threshold value:", type=int) # conversion looks good, or manual verification skipped print('going to print {0}'.format(output)) attempt = Execute( 'lpr -o fit-to-page -o media=A4 {}'.format(output), interactive='echo', ) if attempt.returncode: raise SystemExit(attempt.returncode) Main() --8<------------------------------------------------------------------------------ Opinions about the usability of the above script, both as the script writer and as the user, welcomed. -- ~Ethan~ [1] yes, everyone apparently writes their own command-line processor -- this one is mine. ;) -- https://mail.python.org/mailman/listinfo/python-list