コード例 #1
0
                        type=str,
                        help='filename to compress or decompress',
                        default='PS1_change.dat')
    parser.add_argument('-d',
                        '--decompress',
                        help='decompress file',
                        action='store_true')
    args = parser.parse_args()

    lzw = LZW()

    if not args.decompress:
        # read in the file
        f = open(args.filename, 'rb')
        compressed = [chr(k) for k in array.array("B", f.read())]
        f.close()
        # encode and output
        x = lzw.encode(compressed)
        new_filename = args.filename + '.encoded'
        x.write_to_file(new_filename)
        print("Saved encoded file as %s" % new_filename)

    else:
        b = BitString()
        b.read_in_file(args.filename)
        x = lzw.decode(b)
        new_filename = args.filename + '.decoded'
        with open(new_filename, "w") as f:
            f.write(x)
        print("Saved decoded file as %s" % new_filename)