Commit 4f464c47 authored by Guido van Rossum's avatar Guido van Rossum

Support reading gzipped files. This is triggered automatically when

the filename ends in .gz.  Also support reading from stdin (pass '-'
as filename).
parent c8410ed6
...@@ -93,11 +93,28 @@ def main(): ...@@ -93,11 +93,28 @@ def main():
filename = args[0] filename = args[0]
# Open file # Open file
try: if filename.endswith(".gz"):
f = open(filename, "rb") # Open gzipped file
except IOError, msg: try:
print "can't open %s: %s" % (filename, msg) import gzip
return 1 except ImportError:
print >>sys.stderr, "can't read gzipped files (no module gzip)"
return 1
try:
f = gzip.open(filename, "rb")
except IOError, msg:
print >>sys.stderr, "can't open %s: %s" % (filename, msg)
return 1
elif filename == '-':
# Read from stdin
f = sys.stdin
else:
# Open regular file
try:
f = open(filename, "rb")
except IOError, msg:
print >>sys.stderr, "can't open %s: %s" % (filename, msg)
return 1
# Read file, gathering statistics, and printing each record if verbose # Read file, gathering statistics, and printing each record if verbose
rt0 = time.time() rt0 = time.time()
...@@ -172,7 +189,6 @@ def main(): ...@@ -172,7 +189,6 @@ def main():
else: else:
print '-'*20, "Flip->%d" % current, '-'*20 print '-'*20, "Flip->%d" % current, '-'*20
bytes = f.tell()
f.close() f.close()
rte = time.time() rte = time.time()
if not quiet: if not quiet:
...@@ -187,7 +203,7 @@ def main(): ...@@ -187,7 +203,7 @@ def main():
if dostats: if dostats:
print print
print "Read %s records (%s bytes) in %.1f seconds" % ( print "Read %s records (%s bytes) in %.1f seconds" % (
addcommas(records), addcommas(bytes), rte-rt0) addcommas(records), addcommas(records*24), rte-rt0)
print "Version: %s records" % addcommas(versions) print "Version: %s records" % addcommas(versions)
print "First time: %s" % time.ctime(t0) print "First time: %s" % time.ctime(t0)
print "Last time: %s" % time.ctime(te) print "Last time: %s" % time.ctime(te)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment