Python 壓縮打包文件/文件夾的方法
介紹
實(shí)現(xiàn)壓縮打包文件/文件夾的方法,分兩種類型處理,打包文件是需要傳入文件的路徑,打包文件夾是傳入文件夾的路徑
實(shí)現(xiàn)壓縮打包的代碼
import os import shutil from zipfile import ZipFile # 壓縮打包文件 def compress_pack_file(zip_path, compress_type="file", file_path_list=[], folder_path=""): """ 傳入的是文件路徑列表則壓縮指定文件,傳入的是文件夾則壓縮該文件夾 :param zip_path: 需要寫入的zip文件路徑 :param compress_type: 壓縮的類型:"file":壓縮指定文件;"folder":壓縮文件夾 :param file_path_list: 文件路徑列表 :param folder_path: 文件夾路徑 :return: """ data_dict = {"data": "", "warning_info": "", "error_info": "", } try: if compress_type == "file": if not len(file_path_list): data_dict["error_info"] = "沒有文件需要壓縮打包" return data_dict with ZipFile(zip_path, 'w') as zip_file: for file_path in file_path_list: if os.path.exists(file_path): file_name = os.path.basename(file_path) zip_file.write(file_path, file_name) else: data_dict["warning_info"] += f"【{file_path}】無法壓縮打包" + "\n" elif compress_type == "folder": if zip_path == folder_path: data_dict["error_info"] = "不能壓縮打包" return data_dict file_name_without_ext = os.path.splitext(zip_path)[0] shutil.make_archive(file_name_without_ext, 'zip', folder_path) else: data_dict["error_info"] = f"所選壓縮打包類型無效" except Exception as e: data_dict["error_info"] = f"執(zhí)行壓縮打包失敗" print(e) return data_dict if __name__ == '__main__': f_path = r"D:\BusinessProject\結(jié)果文件\2023-12-01" z_p = r"D:\BusinessProject\結(jié)果文件\2023-12-01\壓縮文件.zip" f_l = [ 'D:\\BusinessProject\\結(jié)果文件\\2023-12-01\\2023-11-29-2023-11-29-官方旗艦店--2023-12-01_10:57.xlsx', 'D:\\BusinessProject\\官方旗艦店--2023-12-01_11:00.xlsx', 'D:\\BusinessProject\\官方旗艦店--2023-12-01_11:01.xlsx', 'D:\\BusinessProject\\官方旗艦店--2023-12-01_11:02.xlsx', 'D:\\BusinessProject\\臥室家具旗艦店--2023-12-01_11:01.xlsx', 'D:\\BusinessProject\\臥室家具旗艦店--2023-12-01_11:02.xlsx'] fl_path = 'D:\\BusinessProject\\結(jié)果文件\\2023-12-01\\2023-11-29-2023-11-29-官方旗艦店--2023-12-01_10:57.xlsx' # result_dict = compress_pack_file(z_p, "file", file_path_list=f_l) # 壓縮打包文件 result_dict = compress_pack_file(z_p, "folder", folder_path=fl_path) # 壓縮打包文件夾 print(result_dict)
實(shí)現(xiàn)查找文件夾的文件路徑代碼
import os file_paths = [] f_path = r"D:\BusinessProject\結(jié)果文件\2023-12-01" for root, dirs, files in os.walk(f_path): for file_name in files: file_path = os.path.join(root, file_name) file_paths.append(file_path) print(file_paths)
到此這篇關(guān)于Python 壓縮打包文件/文件夾的方法的文章就介紹到這了,更多相關(guān)Python 壓縮打包文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Kotlin中SAM轉(zhuǎn)換的那些事
這篇文章主要給大家介紹了關(guān)于Kotlin中SAM轉(zhuǎn)換的那些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09django框架cookie和session用法實(shí)例詳解
這篇文章主要介紹了django框架cookie和session用法,結(jié)合實(shí)例形式詳細(xì)分析了Django框架cookie和session的功能、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12基于Python實(shí)現(xiàn)簡單學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)簡單學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07python中pyc、?pyd文件及生成使用完整實(shí)例代碼
這篇文章主要介紹了python中pyc、?pyd文件及生成使用的相關(guān)資料,重點(diǎn)講解了如何使用Python解釋器編譯.py文件為.pyc文件,以及如何使用Cython和distutils工具將C/C++代碼編譯為.pyd文件,需要的朋友可以參考下2025-04-04Python實(shí)現(xiàn)的連接mssql數(shù)據(jù)庫操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的連接mssql數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了Python安裝pymssql模塊以及基于pymssql模塊連接sql2008 R2數(shù)據(jù)庫的具體操作技巧,需要的朋友可以參考下2018-08-08Python標(biāo)準(zhǔn)庫中隱藏的利器(示例詳解)
在命令行中直接使用Python標(biāo)準(zhǔn)庫的模塊,最大的好處就是就是不用寫代碼,就能使用其中的功能,當(dāng)臨時需要一些某些功能的時候,用這種方式會快捷,方便很多,這篇文章主要介紹了Python標(biāo)準(zhǔn)庫中隱藏的利器,需要的朋友可以參考下2023-11-11