Pythonバッチは、ウィンドウ上のディレクトリ内のすべてのサブディレクトリを圧縮します

1.需要:

これは、ディレクトリ内の20を超えるサブディレクトリ(つまり、フォルダー)を圧縮したかったためですが、それらをすべて一緒に圧縮することはできませんでした(圧縮は非常にCPUとメモリであり、Pythonを実行できるかどうか疑問に思いました。私はそれを自分で圧縮した後、言うまでもなく、カプセル化した関数を直接アップロードし、圧縮する必要があるディレクトリを渡してから、osモジュールを使用してディレクトリの下のサブディレクトリを読み取りました。他のことをするのを遅らせないでください。

コードをアップロードし、それを取り除いて使用するだけです

import zipfile
import os

def zip_yasuo(start_dir):
    file_news = start_dir + '.zip'
    if not os.path.isfile(file_news):
        z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)
        for dir_path, dir_names, file_names in os.walk(start_dir):
            file_path = dir_path.replace(start_dir, '')
            file_path = file_path and file_path + os.sep or ''
            for filename in file_names:
                z.write(os.path.join(dir_path, filename), file_path+filename)
        z.close()

if __name__ == "__main__"
    base_path = r"主目录"
    base_path_list = os.listdir(base_path)
    for base_path_list_one in base_path_list:
        base_path_list_one_dir = os.path.join(base_path,base_path_list_one)
        # 子目录
        print("准备压缩需要压缩的子目录", base_path_list_one_dir)
        if os.path.isdir(base_path_list_one_dir):
            zip_yasuo(base_path_list_one_dir)
            

実行して圧縮を待ちます。じっと見つめる必要はありません。一方のファイルを圧縮してから、もう一方のファイルを圧縮してください。ディレクトリが1つまたは2つしかない場合は、それほど面倒なことはありません。複数ある場合は、トラブルを回避できます。圧縮速度は悪くありません。

いい感じ、いいね!
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_42081389/article/details/105320752