March 21, 2010

Ruby open-zip.rb

テキスト処理などにとっても便利に使っているRubyですが、Rubyにはopen-uri.rbというライブラリがあります。使い方はrequire 'open-uri'をしておくと、ファイルを開くopenという関数が拡張されて、ローカルにあるファイルと同様にネット上のリソース、例えば open('http://example.com/index.html').read なんてことができます。とっても便利です。

それに倣ってzipファイルの中にあるファイルをopenで取り出せるopen-zip.rbなんていうものをこさえてみました。open('test.zip/hogedir/hoge.txt').read なんてことができます。外部ライブラリとしてZip/Rubyに依存している関係で先にそのインストールが必要ですが、これでzipファイルをいちいち展開せずとも中のファイルにアクセスできるのはとても魅力的だと思います。あとちょっと込み入った使い方として、open('root.zip/sub.zip/hoge.txt').read なんていう多段なzip内zipファイルについても内部的に再帰呼び出しをすることでそのまま扱うことができます。

最後にですが、現時点では書き込み機能は実装されていません。必要が生じたらやってみようとも考えています。

13:34 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/744
コメント

おつです。

面白いものを作りましたね。
Ruby は株ロボ作った時に使いましたが、リーマンショック以来さっぱりです。


再起→再帰

 では

Posted by: TeamKNOx : March 21, 2010 06:21 PM

>TeamKNOxさん
どうも。誤字なおしました。

Posted by: fenrir : March 21, 2010 08:56 PM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。