# r,128,64,4000,0
# w,232123,64,500000,0
-import gzip
import protolib
import sys
print "Usage: ", sys.argv[0], " <protobuf input> <ASCII output>"
exit(-1)
- try:
- # First see if this file is gzipped
- try:
- # Opening the file works even if it is not a gzip file
- proto_in = gzip.open(sys.argv[1], 'rb')
-
- # Force a check of the magic number by seeking in the
- # file. If we do not do it here the error will occur when
- # reading the first message.
- proto_in.seek(1)
- proto_in.seek(0)
- except IOError:
- proto_in = open(sys.argv[1], 'rb')
- except IOError:
- print "Failed to open ", sys.argv[1], " for reading"
- exit(-1)
+ # Open the file in read mode
+ proto_in = protolib.openFileRd(sys.argv[1])
try:
ascii_out = open(sys.argv[2], 'w')
# with protobuf python messages. For eg, the decode scripts for different
# types of proto objects can use the same function to decode a single message
+import gzip
import struct
+def openFileRd(in_file):
+ """
+ This opens the file passed as argument for reading using an appropriate
+ function depending on if it is gzipped or not. It returns the file
+ handle.
+ """
+ try:
+ # First see if this file is gzipped
+ try:
+ # Opening the file works even if it is not a gzip file
+ proto_in = gzip.open(in_file, 'rb')
+
+ # Force a check of the magic number by seeking in the
+ # file. If we do not do it here the error will occur when
+ # reading the first message.
+ proto_in.seek(1)
+ proto_in.seek(0)
+ except IOError:
+ proto_in = open(in_file, 'rb')
+ except IOError:
+ print "Failed to open ", in_file, " for reading"
+ exit(-1)
+ return proto_in
+
def DecodeVarint(in_file):
"""
The decoding of the Varint32 is copied from