File size: 1,229 Bytes
fd342b4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#using CodecZlib
#using CSV
#using DataFrames
function compress_csv(input_path::String, output_path::String=input_path * ".gz")
println("Compressing $input_path to $output_path...")
open(input_path, "r") do input_io
open(output_path, "w") do output_io
stream = GzipCompressorStream(output_io)
write(stream, read(input_io))
close(stream)
end
end
# Calculate compression ratio
original_size = filesize(input_path)
compressed_size = filesize(output_path)
ratio = (1 - compressed_size / original_size) * 100
println("Compression complete: $(round(original_size / 1024^2, digits=2)) MB → $(round(compressed_size / 1024^2, digits=2)) MB ($(round(ratio, digits=1))% reduction)")
return output_path
end
function decompress_csv(input_path::String, output_path::String)
println("Decompressing $input_path to $output_path...")
open(input_path, "r") do input_io
open(output_path, "w") do output_io
stream = GzipDecompressorStream(input_io)
write(output_io, read(stream))
close(stream)
end
end
println("Decompression complete!")
return output_path
end
|