コラボでGO!(4)pipコマンドまで使えるの!?LZH形式の圧縮ファイルを解凍

コラボでGO! Vol.4

もしもコラボがなかったならば

Google ColaboratoryはPythonの実行環境を提供してくれるサービスですが、コラボがなかったら我々は途方に暮れていたのでしょうか?

いいえ、もちろん違います。

コラボでボートレース(競艇)のデータを収集しようとする今回の企画の方が異常であって(笑)、普通はローカル(パソコン)でPythonの実行環境を整えます。

ただ、コラボは非常に利便性が高いため、いずれはこういったクラウドサービスを利用するやり方が主流になるかもしれません。今後の動向が気になりますね。

パソコンに環境を用意する方法は、また別の機会にご紹介できればと思います。

lhafileモジュールをインストールしよう

前の章でダウンロードした競争成績のファイルは、LZH形式(.lzh)で圧縮されています。この形式は今では珍しくなりましたが、かつて日本ではZIP形式よりもメジャーな圧縮形式でした。

パソコンに専用のアプリケーション(Lhaplusなど)をインストールしてファイルを解凍することもできますが、ここではコラボでファイルを解凍する手順を説明します。

PythonでLZH形式のファイルを解凍するには「lhafile」というモジュールを利用します。このモジュールはデフォルトのコラボ環境にないため、追加でインストールする必要があります。

前の章でご説明した通り、コラボでは先頭に「!」を入れることでLinuxの各種コマンドを実行できます。Pythonのモジュールを追加するには「pip」コマンドを使います。以下の通りにコマンドを実行してください。

!pip install lhafile

lhafileモジュールは、コラボ(Linux)やMacではpipコマンドでインストール可能です。Windowsではエラーとなることが確認されたのでご注意ください。Windowsでもインストールできるようになってました!誰かがwhlファイルを更新してくれた気がします。ありがたいですね。

また、コラボで提供される環境は毎回初期化されるため、スクリプトを動かす前にpipコマンドを毎回実行する必要がある点も併せてご注意ください。

Pythonスクリプトを記述しよう

ここでは前の章でダウンロードした競争結果のファイルを解凍します。

初心者の人は、コラボで作成したノートブックのセルに以下のスクリプトを丸っとコピーして実行するだけです。コラボではなくローカル環境で実行する場合は、ファイルの保存先を任意の場所に変更してください。

それでは実行してみましょう。コラボでGO!

# ダウンロードしたLZHファイルが保存されている場所を指定
LZH_FILE_DIR = "drive/My Drive/results_lzh/"

# 解凍したファイルを保存する場所を指定
TXT_FILE_DIR = "drive/My Drive/results_txt/"

# 正規表現をサポートするモジュール re をインポート
import re

# LZH形式のファイルを解凍するパッケージ lhafile をインポート
import lhafile

# オペレーティングシステムの機能を利用するパッケージ os をインポート
import os

# 開始合図
print("作業を開始します")

# ファイルを格納するフォルダを作成
os.makedirs(TXT_FILE_DIR, exist_ok=True)

# LZHファイルのリストを取得
lzh_file_list = os.listdir(LZH_FILE_DIR)

# ファイルの数だけ処理を繰り返す
for lzh_file_name in lzh_file_list:

    # 拡張子が lzh のファイルに対してのみ実行
    if re.search(".lzh", lzh_file_name):

        file = lhafile.Lhafile(LZH_FILE_DIR + lzh_file_name)

        # 解凍したファイルの名前を取得
        info = file.infolist()
        name = info[0].filename

        # 解凍したファイルの保存
        open(TXT_FILE_DIR + name, "wb").write(file.read(name))

        print(TXT_FILE_DIR + lzh_file_name + " を解凍しました")

# 終了合図
print("作業を終了しました")

コラボでうまく解凍できると下図のようになります。圧縮ファイルが解凍され、指定したパスにテキストファイルが作成されています。

次の章では、テキストファイルをCSV形式に変換する手順についてご説明します。

タイトルとURLをコピーしました