output.close()
+def chunk_file(input_file, output_file, from_pos, to_pos):
+ ifl = open(input_file, 'r')
+ ofl = open(output_file, 'w')
+
+ ifl.seek(from_pos)
+ ofl.write(ifl.read(to_pos-from_pos))
+ ifl.close()
+ ofl.close()
+
if __name__ == "__main__":
parser = argparse.ArgumentParser()
- parser.add_argument("-s", "--separator", required=True,
- help="string for the separator")
- parser.add_argument("-p", "--prefix", required=True,
- help="prefix for split files")
+ parser.add_argument("-s", "--separator", help="string for the separator")
+ parser.add_argument("-p", "--prefix", help="prefix for split files")
parser.add_argument("input_file", help="input file")
+ parser.add_argument("-f", "--from-pos", type=int, default=-1)
+ parser.add_argument("-t", "--to-pos", type=int, default=-1)
+ parser.add_argument("-o", "--output", default=None)
args = parser.parse_args()
- split_file(separator=args.separator, prefix=args.prefix, input_file=args.input_file)
+ if args.from_pos > -1 and args.to_pos > -1:
+ chunk_file(input_file=args.input_file, output_file=args.output,
+ from_pos=args.from_pos, to_pos=args.to_pos)
+ else:
+ split_file(separator=args.separator, prefix=args.prefix, input_file=args.input_file)