Advertisement
Guest User

read_subs.py

a guest
Jul 25th, 2015
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.80 KB | None | 0 0
  1. from __future__ import print_function
  2. import sys
  3. import struct
  4.  
  5. if __name__ == '__main__':
  6.     if len(sys.argv) < 3:
  7.         print("USAGE: %s <FILENAME> <OFFSET>\n")
  8.         exit(0)
  9.        
  10.     read_uchar = struct.Struct("<B").unpack
  11.     write_obj = getattr(sys.stdout, "buffer", sys.stdout)  
  12.     with open(sys.argv[1], "rb") as fp:
  13.         fp.seek(int(sys.argv[2]))
  14.         try:
  15.             while True:
  16.                 block_len = read_uchar(fp.read(1))[0]
  17.                 if not block_len: break
  18.                 data = fp.read(block_len)
  19.                 if len(data) != block_len:
  20.                     print("Corrupt block. File ended to early.")
  21.                     break
  22.                 write_obj.write(data)
  23.         except struct.error:
  24.             print("Corrupt block. File ended to early.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement