-def smartopen(file):
- if os.path.isfile(file):
- f = open(file, "r")
- elif os.path.isfile("%s.gz" % file):
- f = decompressors[ 'zcat' ]( file )
- elif os.path.isfile("%s.bz2" % file):
- f = decompressors[ 'bzcat' ]( file )
+def smartread(filename):
+ """
+ If filename exists, slurp the contents into a string.
+ if filename.gz or filename.bz2 exists instead, decompress and slurp
+ It returns a tuple of (filename, filecontents)
+ """
+ actual_filename = None
+ contents = None
+ if os.path.isfile(filename):
+ f = open(filename, "r")
+ elif os.path.isfile("%s.gz" % filename):
+ actual_filename = "%s.gz" % filename
+ f = decompressors['zcat'](actual_filename)
+ elif os.path.isfile("%s.bz2" % filename):
+ actual_filename = "%s.bz2" % filename
+ f = decompressors['bzcat'](actual_filename)