こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

広告:本ブログで紹介している書籍等商品の紹介でAmazonアソシエイトを利用していることがあります。

とりあえずtxtを取り出すスクリプト

同一ディレクトリないの.txtを.zbkにりねーむ - Engineer as a Lifestyle @tenkomaのつづき
使えるモノになるかはわからないがとりあえず作り始めることにした.
ツールの核になる,aozora.gr.jpからzipファイルをダウンロードして,txtファイルを取り出すスクリプト(tools.py,Windows用です)

コード

# -*- coding:MS932 -*-
import os,sys,urllib,zipfile

cachedir = 'C:\\bunko_zaurus\\'
def setdir(path):
    if not os.path.isdir(path):
        os.mkdir(path)

def remortzip2txt(url):
    opener = urllib.FancyURLopener({})
    zipf = opener.retrieve(url)
    zipobject = zipfile.ZipFile(zipf[0],mode='r')
    filelist = zipobject.namelist()
    if len( filelist ) != 1:
        raise IndexError, "Number of text file as not 1."  #Zipfile中のtxtファイルが1つ以外の時は例外
    txtfile = open(filelist[0],'w')
    txtfile.write(zipobject.read(filelist[0]))
    txtfile.close()
if __name__ == '__main__':
    setdir(cachedir)
    os.chdir(cachedir)
    remortzip2txt(sys.argv[1])

実行方法

python tools.py http://www.aozora.gr.jp/cards/000148/files/752_ruby_2438.zip

すると,C:/bunko_zaurus/に夏目漱石の坊ちゃんのテキストファイルが保存されます.