Python實現批量文件的壓縮處理
一、前言
接到項目求助,需要對上千個文件夾中的文件進行壓縮處理,并要刪除源文件,只保留壓縮后的壓縮文件,數據量大,手動完成耗時耗力,用Python處理再合適不過了。
二、項目目標
批量對文件夾的內容進行壓縮處理,滿足客戶要求。
三、項目準備
軟件:PyCharm
需要的庫:os,shutil,zipfile
四、項目分析
1)如何讀取源文件?
利用OS庫,獲取文件夾名list,利用for循環,輕松拿到要壓縮的源文件。
2)如何進行壓縮處理?
利用zipfile庫中的zipfile.ZipFile()對獲取到的文件進行壓縮處理。
3)如何刪除源文件?
先利用os庫的remove()刪除文件,再利用shutil庫的rmtree()刪除空文件夾。
五、項目實現
1、第一步導入需要的三個庫
importosasos
importshutil
importzipfile
2、第二步定義刪除文件函數和壓縮文件函數
defdel_(rootdir):
filelist=[]
filelist=os.listdir(rootdir)#列出該目錄下的所有文件名
forfinfilelist:
filepath=os.path.join(rootdir,f)#將文件名映射成絕對路勁
ifos.path.isfile(filepath):#判斷該文件是否為文件或者文件夾
os.remove(filepath)#若為文件,則直接刪除
elifos.path.isdir(filepath):
shutil.rmtree(filepath,True)#若為文件夾,則刪除該文件夾及文件夾內所有文件
shutil.rmtree(rootdir,True)
defzipDir(dirpath,outFullName):
zip=zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED)
forpath,dirnames,filenamesinos.walk(dirpath):
#去掉目標跟路徑,只對目標文件夾下邊的文件及文件夾進行壓縮
fpath=path.replace(dirpath,'')
forfilenameinfilenames:
zip.write(os.path.join(path,filename),os.path.join(fpath,filename))
zip.close()
3、第三步創建主函數
defmain():
path_end='D:/a/h/'
date=os.listdir(path_end)
#獲取目標文件夾所有文件夾名列表
forfindate:
ljbc='D:/a/h/'+f+'/'+'查詢信息.zip'
ljbc2='D:/a/h/'+f+'/'+'下發修改.zip'
#以上兩行是創建壓縮后的文件名
ljcx='D:/a/h/'+f+'/查詢信息'
ljxf='D:/a/h/'+f+'/下發修改'
#以上兩行是要壓縮的源文件
zipDir(ljcx,ljbc)
zipDir(ljxf,ljbc2)
del_(ljcx)
del_(ljxf)
if__name__=='__main__':
main()
以上內容為大家介紹了Python實現批量文件的壓縮處理,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.mobiletrain.org/

猜你喜歡LIKE
相關推薦HOT
更多>>
python中的filter函數功能是什么?
python中的filter函數功能是什么?在python中,面對眾多的數據,我們要過濾篩選出我們需要的數據。python中的filter函數就是起到了過濾篩選的作...詳情>>
2023-11-10 20:37:27
pythontime模塊是什么
pythontime模塊是什么在python中使用時間,就免不了和time模塊打交道,另外兩個模塊這個暫時先不做介紹。做time模塊的使用上,我們可以用它來對...詳情>>
2023-11-10 15:53:16
python是什么編程語言
python是什么編程語言1、說明是一種面向對象、解釋型計算機程序設計語言,由GuidovanRossum于1989年底發明,第一個公開發行版發行于1991年。Pyt...詳情>>
2023-11-10 15:21:05
python異常處理的兩種技巧
python異常處理的兩種技巧1、傳遞異常有時我們會在捕捉到一個異常后重新引發它(傳遞異常),實現起來很簡單,使用不帶參數的raise語句即可。deff...詳情>>
2023-11-10 14:49:39熱門推薦
python中的filter函數功能是什么?
沸python delattr函數如何使用?
熱python中pdb模塊怎么用?
熱Python如何截圖保存?
新python?中缺少module怎么辦?
python strftime和strptime的不同分析
python time.strptime的格式化
python中@contextmanager是什么?
python對象的三要素是什么
pythonGIL在Python多線程的應用
python如何對多個CSV文件進行讀取
pythonif嵌套命令如何理解?
python對列表進行永久性或臨時排序的方法
python生成器調用方法引發異常
技術干貨






