Compressing files with python, perl, ruby and php
Compressing files
is one of the most common tasks any programmer would have done. The below is a simple comparison of compression paradigms of selected programming languages i have really liked!
This post is much influenced by :
Senario : A list called 'songs' with file paths to different songs in the HDD which needs to be compressed to a single zip file.
Ok let the fight begin!
First up is python :
#!/usr/bin/python import zipfile """ Open a file called album.zip to write """ with zipfile.ZipFile('album.zip', 'w') as zipit: """ zipit! """ for song in songs: zipit.write(song)
Lets compress it in perl :
#!/usr/bin/perl use strict; use warnings; use Archive::Zip; my $compressor = Archive::Zip->new(); foreach my $song (@songs) { $compressor->addFile($song); } $compressor->writeToFileNamed('album.zip');
Ok it's ruby's turn :
#!/usr/bin/ruby require 'rubygems' require 'zip/zip' Zip::ZipFile.open('album.zip', Zip::ZipFile::CREATE) { |zipit| zipit.get_output_stream(song) { |f| f.puts open(url.chomp).read } }
PHP you may zip it!
<?php $zip = new ZipArchive(); $zip->open('album.zip', ZIPARCHIVE::CREATE); foreach($songs as $song) { $zip->addFile($song,$song); } $zip->close(); ?>
Indeed there will be better ways of doing the same! Do share it!
Recent blog posts
- watir-webdriver web inspector
- gem list to gemfile
- Packing ruby2.0 on debian.
- Made it into The Guinness Book!
- to_h in ruby 2.0
- Filter elements by pattern jQuery.
- Better HTML password fields for mobile ?
- Grayscale image when user offline
- nth-child CSS pseudo-class Christmas colors
- EventEmitter in nodejs