Advertisement
goddesschi

Untitled

Jun 22nd, 2014
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. default_block_size = 512
  4.  
  5. def slice_file(source_filename, dest_filename, slice_from, slice_to, block):
  6.     f_in = open(source_filename, 'rb')
  7.     f_out = open(dest_filename, 'wb')
  8.     read_count = 0
  9.     eof = False
  10.     import random
  11.     random.seed()
  12.     while not eof:
  13.         read = f_in.read(block)
  14.         if(len(read) < block): eof = True
  15.         if(read_count < slice_from or read_count >= slice_to):
  16.             f_out.write(read)
  17.         else:
  18.             for i in range(block):
  19.                 f_out.write(bytes(chr(random.randint(0,127)), encoding = 'utf-8'))
  20.         read_count += block
  21.     f_in.close()
  22.     f_out.close()
  23.  
  24.  
  25. if __name__ == '__main__':
  26.     import sys
  27.     if(len(sys.argv) < 3):
  28.         print('missing arguments:')
  29.         print(sys.argv[0] + ' source_filename dest_filename [slicing_starts_from slicing_length [block_size]]')
  30.         quit()
  31.     source_filename = sys.argv[1]
  32.     dest_filename = sys.argv[2]
  33.     if(len(sys.argv) < 4):
  34.         slice_from = int(input('slicing starts from: '))
  35.         slice_to = slice_from + int(input('slicing length: '))
  36.     else:
  37.         slice_from = int(sys.argv[3])
  38.         slice_to = int(sys.argv[3]) + int(sys.argv[4])
  39.     if(len(sys.argv) >= 6):
  40.         block = int(sys.argv[6])
  41.     else: block = default_block_size
  42.     slice_file(source_filename, dest_filename, slice_from, slice_to, block)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement