-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)
+def smartopen(file):
+ if os.path.isfile(file):
+ f = open(file, "r")
+ elif os.path.isfile("%s.gz" % file):
+ f = create_temp_file(os.popen("zcat %s.gz" % file, "r"))
+ elif os.path.isfile("%s.bz2" % file):
+ f = create_temp_file(os.popen("bzcat %s.bz2" % file, "r"))