====== ファイルの圧縮と解凍 ======
[[:python|一つ上へ]]
===== ZIPファイルの解凍 =====
zipファイルを解凍するにはzipfileモジュールを使用する。
流れは
- with でzipファイルを読み取り専用で開く。
- infolist()で中のデータのリストを取得する。
- リストでループし、それぞれのファイルを指定してターゲットのディレクトリに解凍する。
target_dir = "ファイルを解凍したいディレクトリ"
try:
with zipfile.ZipFile(zip_dst, 'r') as zip_ref:
for info in zip_ref.infolist():
info.filename = info.filename.encode('cp437').decode('cp932')
zip_ref.extract(info, target_dir, pwd=password.encode())
print(f'ファイル=>{info}')
except zipfile.BadZipFile:
print("不正なZIPファイル")
except RuntimeError as e:
print(f"解凍エラー:{e}")
===== gzipファイルの解凍 =====
# ワークフォルダにあるgzipファイルを解凍する。
input_file_name = target_path.joinpath("input.txt.gz")
output_file_name = target_path.joinpath(f"output.txt")
with gzip.open(input_file_name, 'rb') as f_in:
with open(output_file_name, "wb") as f_out:
f_out.writelines(f_in)