2011年3月9日水曜日

pythonでLZH形式ファイルを解凍する

UNLHA32.DLLを利用した解凍方法など検索すると
---
(Windowの場合)
windll.UNLHA32.Unlha(0, r'x -r1 -n "%s\\%s" "%s\\" *.*' % (path, fname, path), None, 0)
---
こういうやり方でできるものがあった。

もっとシンプルやりたかったので別の探してみたら見つけた。

前提条件:
・VC++が入っている事。
basetsd.hが無いとエラーが出たらKoderよりヘッダソースをコピーしてくる。
http://www.koders.com/c/fid4BF9F859DE62B18F2A3C47B66D776CDDE9D75AF4.aspx

1.インストール
easy_install、pipのパスが通ってない場合はフォルダ移動して(例:d:\traclight\python\scripts)

% easy_install http://svn.neotitans.net/lhafile/
% pip install http://svn.neotitans.net/lhafile/

実行。
コンパイル成功して
 python\Lib\lzhlib.pyd
が入っていたらインストール完了。

2.使い方
import lhafile

# Create Lhafile instance from filename
f = lhafile.Lhafile('foo.lzh')

# Print each file informaion in archive file.
for info in f.infolist():
   print info

# Extract data from archive
f.read('bar.txt')

追記:
使ってみてみたらまだバグがあるらしいので注意。
2011.05.27
作者the-o様に修正していただきました!
thank you:)


参考URL
http://trac.neotitans.net/wiki/lhafile
コメントを投稿

Androider