フォルダ内に多くの画像がある。 フォルダを選択すると、その中に画像を、50枚ずつzip圧縮するpythonスクリプトを書いて
以下は、指定されたフォルダ内の画像を50枚ずつ分割してZIPファイルに圧縮するPythonスクリプトです。Pythonの標準ライブラリを使って実装しています。
必要なライブラリ
Pythonの標準ライブラリであるosとzipfileを使用します。これらはデフォルトでインストールされているため、追加のインストールは不要です。
スクリプト
python
import os
import zipfile
def zip_images_in_batches(folder_path, batch_size=50):
# 指定されたフォルダ内のファイル一覧を取得
files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
images = [f for f in files if f.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff'))]
# 画像を50枚ずつのバッチに分割してZIP圧縮
batch_number = 1
for i in range(0, len(images), batch_size):
batch_images = images[i:i + batch_size]
zip_filename = os.path.join(folder_path, f'batch_{batch_number}.zip')
with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
for image in batch_images:
zipf.write(os.path.join(folder_path, image), image)
print(f'Created {zip_filename}')
batch_number += 1
# 使用例
folder_path = 'path_to_your_folder' # 圧縮したい画像があるフォルダのパスを指定
zip_images_in_batches(folder_path)
スクリプトの説明
-
フォルダ内のファイルを取得:
os.listdir(folder_path)を使用して、指定されたフォルダ内のすべてのファイルのリストを取得します。- 画像ファイル(
.png,.jpg,.jpeg,.gif,.bmp,.tiff)のみをフィルタリングしてimagesリストに保存します。
-
画像を50枚ずつ分割:
range(0, len(images), batch_size)を使用して、画像リストを50枚ずつのバッチに分割します。- 各バッチについて、ZIPファイルを作成し、
zipfile.ZipFileを使用して画像を追加します。
-
ZIPファイルの作成:
zipfile.ZipFileコンテキストマネージャーを使用して、バッチごとにZIPファイルを作成します。zipf.writeメソッドを使用して、各画像ファイルをZIPアーカイブに追加します。
-
ZIPファイルの名前:
- 各バッチのZIPファイルは
batch_1.zip,batch_2.zipのように名前が付けられます。
- 各バッチのZIPファイルは
使用方法
-
スクリプトを保存:
- 上記のスクリプトを
zip_images.pyという名前で保存します。
- 上記のスクリプトを
-
フォルダパスを指定:
- スクリプト内の
folder_path変数に圧縮したい画像が保存されているフォルダのパスを指定します。
- スクリプト内の
-
スクリプトを実行:
- コマンドラインやターミナルで
python zip_images.pyを実行します。
- コマンドラインやターミナルで
このスクリプトは、指定されたフォルダ内の画像を50枚ずつ分割してZIPファイルに圧縮します。各ZIPファイルはbatch_1.zip, batch_2.zipのように名前が付けられ、元のフォルダ内に保存されます。

ディスカッション
コメント一覧
まだ、コメントがありません