前提
ゴールとしてawsのs3にupされたzipファイルをトリガーにlambdaを動作させzipファイルの中身を編集しs3UPするものを作りたいので
手始めに今回はローカルでpythonの実行ファイル用意してzipファイルを解凍する簡単な処理を試してみる備忘録です
条件
zipファイルを展開する時に「.csv」以外の拡張のファイルは邪魔になるので解凍するのは「.csv」ものだけにします
実戦
test_csvs.zip
test_csvs.zip
└sample1.csv
└sample2.csv
└sample3.csv
└main.py
└sample.py
test.py
import zipfile
import os
def unzip_files(zip_file_path):
# 現在のスクリプトが実行されているディレクトリを取得
extract_to_path = os.path.dirname(os.path.abspath(__file__))
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
for item in zip_ref.namelist():
# 確認用にファイル名表示
print(item)
# .csvファイルのみを解凍
if item.endswith('.csv'):
zip_ref.extract(item, extract_to_path)
# 解凍するZIPファイルのパスを指定
zip_file_path = 'test_csvs.zip'
# .pyファイルのみを抽出して解凍
unzip_files(zip_file_path)
test.pyとzipファイルは同じディレクトリに設置してtest.py実行します
test.pyを実行すると同じディレクトリに「sample1.csv, sample2.csv, sample3.csv」が解凍されています
おわり
今回はzipファイルの解凍だけでしたが次はs3からのファイルのDLとUPの処理周りをやろうかと思います