スクレイピング した株価データzipファイルをpythonで解凍(展開)する方法

スクレイピング で株価データを取得する際、そのデータが日付ごとのzipファイルであることがよくあります。

 

例えば、2019年1月1日〜1月31日の株価データを取得するために

20190101.zip

20190102.zip

20190103.zip

・・・

20190131.zip

 

とデータをスクレイピングして、このzipファイルを解凍しなければならないケースです。

 

通常、株価データは数年単位で欲しいことが普通ですが、数年分の日付データを手で解凍するのは途方もない作業です。

 

この大量のデータの解凍作業をpythonでサクッとやっちゃいましょうというのがこの記事の内容です。

スポンサーリンク

pythonのzipfileモジュールを使えば簡単!

import zipfile 
import os 
zip = zipfile.ZipFile('展開するzipファイルのパス') 
zip.extractall('展開したファイルを置きたいディレクトリ') 
zip.close os.remove('展開するzipファイルのパス')

これだけです。zipfileモジュールもosモジュールもpythonに最初から用意されているのでインストールは不要。

zip = zipfile.ZipFile('展開するzipファイルのパス')

最初の行でZipFileオブジェクトを作ります。このZipFileオブジェクトを色々といじることでzipファイルの操作ができるようになります。

zip.extractall('展開したファイルを置きたいディレクトリ')
zip.close

extractallは、zipファイル上の全てのデータを展開するコード。()の中は、展開したデータを保存したいディレクトリ(フォルダ)を指定します。

 

zip.closeはzipファイルの操作を終了する際に、必ず必要となる処理。これがないと処理が行われません。

os.remove('展開するzipファイルのパス')

最後に、データを展開して不要になったzipファイルを削除します。

 

意外と簡単です。

スポンサーリンク

globモジュールを使って大量のzipファイルを処理する

import zipfile
import os
import glob

zip_path='zipファイルを置いてあるディレクトリ(フォルダ)パス'

zipfile_list=glob.glob(zip_path+'*.zip')

for zipfile in zipfile_list:
    zip = zipfile.ZipFile(zipfile)
    zip.extractall('展開したファイルを置きたいディレクトリ')
    zip.close
    os.remove(zipfile)

 

globモジュールはディレクトリ(フォルダ)内のファイル一覧をlist型で出力できるモジュール。

zipfile_list=glob.glob(zip_path+'*.zip')

zip_path内の最後が「.zip」で終わるデータを集めてリスト化しています。(*はワイルドカード)

 

これをfor文で回せば、大量のzipファイルも簡単に展開することができます。

 

 

株価データは圧縮ファイルで提供されているケースが多いので、そのような株価データを取り扱う時は、zipfileモジュールがとても便利です。

 

以下の記事で紹介しているスクレイピング とこの記事の内容を組み合わせることで株価データを効率的に取得することができます。

コメント