Pythonでrarファイルを解凍し、zipで圧縮する

rarで圧縮されているファイルをzipでの圧縮に変更したいので、
Pythonでスクリプトを書いてみることにします。




Pythonでrarファイルの解凍



rarfileっていうモジュールでrarファイルの操作ができる模様。
rarfile 2.2


easy_installでインストールします。


$ sudo easy_install rarfile





使い方はとっても簡単。
こんなスクリプトで、rarファイルの中身を取り出すことができました。


  1. # -*- coding:utf-8 -*-
  2. import rarfile
  3. rf = rarfile.RarFile('test.rar')
  4. for f in rf.infolist():
  5.     
  6.     #ファイル名表示
  7.     print(f.filename)
  8.     
  9.     #ファイルの内容を復元
  10.     out = open(f.filename, 'w')
  11.     out.write(rf.read(f))
  12.     out.close()









Pythonでzipファイル圧縮



zip圧縮はPython標準の機能としてありますので、それを使います。

出来上がったサンプルはこれです。


  1. # -*- coding:utf-8 -*-
  2. import rarfile
  3. import zipfile
  4. rf = rarfile.RarFile('test.rar')
  5. zf = zipfile.ZipFile('test.zip', 'w', zipfile.ZIP_DEFLATED)
  6. for f in rf.infolist():
  7.     
  8.     #ファイル名表示
  9.     print(f.filename)
  10.     
  11.     #ディレクトリは処理対象外
  12.     if f.isdir():
  13.         continue
  14.     
  15.     #zipファイルへrarファイルに格納されているファイルの情報を書き込む
  16.     zf.writestr(f.filename, rf.read(f))
  17.     
  18.     
  19. zf.close()




意外と簡単に実装できました。






参考URL




Module rarfile
http://rarfile.berlios.de/doc/

12.4. zipfile ― ZIP アーカイブの処理
http://www.python.jp/doc/nightly/library/zipfile.html

関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ