Hi, Is either approach (try-excepts, or using libmagic) considered more idiomatic? What would you guys prefer yourselves?
Also, is it possible to use either approach with a context manager ("with"), without duplicating lots of code? For example: try: with gzip.open('blah.txt', 'rb') as f: for line in f: print(line) except IOError as e: with open('blah.txt', 'rb') as f: for line in f: print(line) I'm not sure of how to do this without needing to duplicating the processing lines (everything inside the with)? And using: try: f = gzip.open('blah.txt', 'rb') except IOError as e: f = open('blah.txt', 'rb') finally: for line in f: print(line) won't work, since the exception won't get thrown until you actually try to open the file. Plus, I'm under the impression that I should be using context-managers where I can. Also, on another note, python-magic will return a string as a result, e.g.: gzip compressed data, was "blah.txt", from Unix, last modified: Wed Nov 20 10:48:35 2013 I suppose it's enough to just do a? if "gzip compressed data" in results: or is there a better way? Cheers, Victor On Tuesday, 19 November 2013 20:36:47 UTC+11, Mark Lawrence wrote: > On 19/11/2013 07:13, Victor Hooi wrote: > > > > > > So basically, using exception handling for flow-control. > > > > > > However, is that considered bad practice, or un-Pythonic? > > > > > > > If it works for you use it, practicality beats purity :) > > > > -- > > Python is the second best programming language in the world. > > But the best has yet to be invented. Christian Tismer > > > > Mark Lawrence -- https://mail.python.org/mailman/listinfo/python-list