您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python怎么實現批量壓縮文件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python怎么實現批量壓縮文件”吧!
【Python壓縮文件夾】導入“zipfile”模塊
【python壓縮文件】導入“zipfile”模塊
補充
zipfile是python里用來做zip格式編碼的壓縮和解壓縮的,由于是很常見的zip格式,所以這個模塊使用頻率也是比較高的,
在這里對zipfile的使用方法做一些記錄。即方便自己也方便別人。
Python zipfile模塊用來做zip格式編碼的壓縮和解壓縮的,要進行相關操作,首先需要實例化一個 ZipFile 對象。ZipFile 接受一個字符串格式壓縮包名稱作為它的必選參數,第二個參數為可選參數,表示打開模式,類似于文件操作,有r/w/a三種模式,分別代表讀、寫、添加,默認為r,即讀模式。
zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。ZipFile是主要的類,用來創建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。
def zip_ya(startdir,file_news): startdir = ".\\123" #要壓縮的文件夾路徑 file_news = startdir +'.zip' # 壓縮后文件夾的名字 z = zipfile.ZipFile(file_news,'w',zipfile.ZIP_DEFLATED) #參數一:文件夾名 for dirpath, dirnames, filenames in os.walk(startdir): fpath = dirpath.replace(startdir,'') #這一句很重要,不replace的話,就從根目錄開始復制 fpath = fpath and fpath + os.sep or ''#這句話理解我也點郁悶,實現當前文件夾以及包含的所有文件的壓縮 for filename in filenames: z.write(os.path.join(dirpath, filename),fpath+filename) print ('壓縮成功') z.close() if__name__=="__main__" startdir = ".\\123" #要壓縮的文件夾路徑 file_news = startdir +'.zip' # 壓縮后文件夾的名字 zip_ya(startdir,file_news)
import zipfile def zip_files( files, zip_name ): zip = zipfile.ZipFile( zip_name, 'w', zipfile.ZIP_DEFLATED ) for file in files: print ('compressing', file) zip.write( file ) zip.close() print ('compressing finished') files = ['.\\123.txt','.\\3.txt']#文件的位置,多個文件用“,”隔開 zip_file = '.\\m66y.zip'#壓縮包名字 zip_files(files, zip_file)
ZipFile還提供了如下常用的方法和屬性:
ZipFile.getinfo(name)
獲取zip文檔內指定文件的信息。返回一個zipfile.ZipInfo對象,它包括文件的詳細信息。
ZipFile.infolist()
獲取zip文檔內所有文件的信息,返回一個zipfile.ZipInfo的列表。
ZipFile.namelist()
獲取zip文檔內所有文件的名稱列表。
ZipFile.extract(member[, path[, pwd]])
將zip文檔內的指定文件解壓到當前目錄。參數member指定要解壓的文件名稱或對應的ZipInfo對象;參數path指定了解析文件保存的文件夾;
ZipFile.extractall([path[, members[, pwd]]])
解壓zip文檔中的所有文件到當前目錄。參數members的默認值為zip文檔內的所有文件名稱列表,也可以自己設置,選擇要解壓的文件名稱。
ZipFile.printdir()
將zip文檔內的信息打印到控制臺上。
ZipFile.setpassword(pwd)
設置zip文檔的密碼。
ZipFile.read(name[, pwd])
感謝各位的閱讀,以上就是“Python怎么實現批量壓縮文件”的內容了,經過本文的學習后,相信大家對Python怎么實現批量壓縮文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。