Zipファイルを解凍してUTF-8へ変換
以前に外部から送られてくるZIPで圧縮されたファイルを解凍してDBへ投入するプログラムをperlで書いたんですが、これをpythonで書き換え中。
とりあえず今日はZIPを解凍して、その中に入っているテキストファイルをUTF-8へ変換するところまで。拡張子で条件付けしているところがかなりダサいがまぁいいか。
import sys,zipfile,os,os.path def conv(data): u = data.decode('euc-jp') return u.encode('utf-8') def unzip_file(file): zfobj = zipfile.ZipFile(file) for name in zfobj.namelist(): if name.endswith("/"): os.mkdir(name) else: outfile = open(os.path.join('.',name),'wb') if name.endswith(".txt"): data = conv(zfobj.read(name)) outfile.write(data) else: outfile.write(zfobj.read(name)) outfile.close() def main(): unzip_file(open(sys.argv[1])) if __name__ == '__main__': main()