Linuxで日本語ファイル名のzipを解凍するためのpythonスクリプトを作ってみた

突然ですが、Windows Vistaを卒業して Ubuntu 9.04に入門しました。 普段の仕事はぜんぶUbuntu on Dynabook SS/RX1でやってます。 ほとんどの作業は問題ないものの、zipファイルの中身のファイル名が文字化けするのがイラっときてました。。。 と、いうわけで、参考になりそうなコードがあったので 勉強がてらpythonで回避用のプログラムを組んでみました。 元ネタのlolloo-htnの日記 – 解凍すると文字化けするzipファイルをpythonでなんとかしてみるから、パスワード入力ができるように、出力先をエイヤーでするようにちょびっと変更しています。 なんせ「文字列の連結ってどうやるんだっけ?」ってくらい素人なので アラアラなのはご容赦くださいませ。 直し方とか教えてもらえると超うれしいです。

#/usr/bin/env python
#coding:utf8
# special thanks to id:lolloo-htn
# http://d.hatena.ne.jp/lolloo-htn/20090126/1232977712
import zipfile, os, os.path, sys
targetfile=sys.argv[1]
z = zipfile.ZipFile(targetfile)
outdirbase = targetfile.decode("UTF-8") + "_"
requirepassword=0
for info in z.infolist():
if((info.flag_bits != 0) & (requirepassword != 1)):
print "password: "
password=sys.stdin.readline().rstrip()
z.setpassword( password )
requirepassword=1
for name in z.namelist():
name_u = name.decode("cp932")
data   = z.read(name)
fname = os.path.join( outdirbase, name_u )
d,f = os.path.split(fname)
if not os.path.isdir(d):
os.makedirs(d)
ofh = open(fname,"wb")
ofh.write(data)
ofh.close()
z.close()
このエントリーをはてなブックマークに追加

カテゴリー: 未分類   作成者: Toshiaki Baba パーマリンク
Amazonおまかせリンク(R)

Linuxで日本語ファイル名のzipを解凍するためのpythonスクリプトを作ってみた” への1件のコメント

  1. p7zipをアンインストールすると文字化け無くなりましたよー。

コメントを残す

メールアドレスが公開されることはありません。


+ two = 10

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">