日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python生成多级文件夹_Python zipfile压缩文件和文件夹(支持多级目录)

發布時間:2025/4/16 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python生成多级文件夹_Python zipfile压缩文件和文件夹(支持多级目录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

支持壓縮單個文件和多級文件夾

使用方法

zip_compress(to_zip,save_zip_name):#to_zip表示源文件或者源目錄,save_zip_name表示目的zip文件(可帶目錄)

思路:

先判斷目的文件目錄是否存在,如果不存在,就創建;

判斷被壓縮的是文件還是目錄

如果是文件,直接壓縮

如果是目錄,遍歷后逐一壓縮

#!/usr/bin/env?python3

#?-*-?coding:?utf-8?-*-

import?os,zipfile

def?zip_compress(to_zip,save_zip_name):#save_zip_name是帶目錄的,也可以不帶就是當前目錄

#1.先判斷輸出save_zip_name的上級是否存在(判斷絕對目錄),否則創建目錄

save_zip_dir=os.path.split(os.path.abspath(save_zip_name))[0]#save_zip_name的上級目錄

print(save_zip_dir)

if?not?os.path.exists(save_zip_dir):

os.makedirs(save_zip_dir)

print('創建新目錄%s'%save_zip_dir)

f?=?zipfile.ZipFile(os.path.abspath(save_zip_name),'w',zipfile.ZIP_DEFLATED)

#?2.判斷要被壓縮的to_zip是否目錄還是文件,是目錄就遍歷操作,是文件直接壓縮

if?not?os.path.isdir(os.path.abspath(to_zip)):#如果不是目錄,那就是文件

if?os.path.exists(os.path.abspath(to_zip)):#判斷文件是否存在

f.write(to_zip)

f.close()

print('%s壓縮為%s'?%?(to_zip,?save_zip_name))

else:

print?('%s文件不存在'%os.path.abspath(to_zip))

else:

if?os.path.exists(os.path.abspath(to_zip)):#判斷目錄是否存在,遍歷目錄

zipList?=?[]

for?dir,subdirs,files?in?os.walk(to_zip):#遍歷目錄,加入列表

for?fileItem?in?files:

zipList.append(os.path.join(dir,fileItem))

#?print('a',zipList[-1])

for?dirItem?in?subdirs:

zipList.append(os.path.join(dir,dirItem))

#?print('b',zipList[-1])

#讀取列表壓縮目錄和文件

for?i?in?zipList:

f.write(i,i.replace(to_zip,''))#replace是減少壓縮文件的一層目錄,即壓縮文件不包括to_zip這個目錄

#?print('%s壓縮到%s'%(i,save_zip_name))

f.close()

print('%s壓縮為%s'?%?(to_zip,?save_zip_name))

else:

print('%s文件夾不存在'?%?os.path.abspath(to_zip))

總結

以上是生活随笔為你收集整理的python生成多级文件夹_Python zipfile压缩文件和文件夹(支持多级目录)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。