最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)批量壓縮解壓文件(zip、rar)

 更新時間:2023年09月05日 11:50:02   作者:RS迷途小書童  
Python是一種廣泛使用的編程語言,非常適合處理各種任務(wù),包括批量解壓縮文件,本文主要介紹了Python實現(xiàn)批量壓縮解壓文件,具有一定的參考價值,感興趣的可以了解一下

好長一段時間沒有更新了,最近手里的項目沒停過太忙了。今天正好有空就分享下之前編寫的一段代碼。

起因是因為我想將一些文件上傳至網(wǎng)盤,但奈何太窮開不起會員,無法上傳超過4G的文件。于是就想能不能使用Python實現(xiàn)批量壓縮文件夾,搞都搞了順便將解壓文件夾也寫出來了。今天就和大家分享一下。

一、導(dǎo)入相關(guān)庫

os庫是為了監(jiān)測生成的文件夾是否已存在。主要的庫是zipfile,它提供了有關(guān)windows下的文件/文件夾的壓縮、解壓的函數(shù)。

import os
import zipfile

二、壓縮文件

今天偷個懶,就不一段一段的去解釋了,直接整個函數(shù)展示。相關(guān)的注釋已經(jīng)寫清楚了,主要函數(shù)就是zipfile.ZipFile和zip_file.write。zip_file.write(file_path,file_each)中,file_path是文件夾中文件的完整路徑,file_each是文件名。

def Compress_path_zip(path_all):
    path_all_list = os.listdir(path_all)
    # 列出總文件夾內(nèi)所有需要壓縮的文件夾
    for path_each in path_all_list:
        path_compress = os.path.join(path_all, path_each)
        # 待壓縮的絕對路徑
        if os.path.isdir(path_compress):
            print("正在壓縮:%s" % path_each)
            # 遍歷所有需要壓縮的文件夾
            if os.path.exists(path_all + "%s.zip" % path_each):
                print(path_all + "%s1.zip" % path_each+"已存在,新文件名為'%s'" % (path_all + "%s1.zip" % path_each))
                zip_file = zipfile.ZipFile(path_all + "%s1.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
                # 創(chuàng)建的壓縮對象用于執(zhí)行后續(xù)操作
                # file_list = zip_file.namelist()
                # 列出壓縮文件夾中所有文件
            else:
                zip_file = zipfile.ZipFile(path_all + "%s.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
            file_list = os.listdir(path_compress)
            # 待壓縮文件夾內(nèi)所有文件
            # zip_file.setpassword(b'123')
            for file_each in file_list:
                # 遍歷所有文件夾內(nèi)的文件
                file_path = os.path.join(path_compress, file_each)
                zip_file.write(file_path, file_each)
            zip_file.close()
        else:
            print(path_each, "不是文件夾,不進行壓縮")
            continue

三、解壓文件

這段代碼就不細(xì)說了,反正修改了路徑就能直接使用了。

def Decompress_path_zip(path_all):
    path_all_list = os.listdir(path_all)
    for path_each in path_all_list:
        # 遍歷所有需要壓縮的文件夾
        if path_each.endswith('.zip'):
            print("正在解壓:%s" % path_each)
            path_decompress = os.path.join(path_all, path_each)
            zip_file = zipfile.ZipFile(path_decompress, 'r')  # 壓縮文件位置
            for file in zip_file.namelist():
                if os.path.exists(path_decompress[:-4]):
                    print("'%s'" % path_decompress[:-4], "已存在,新文件名為'%s'" % (path_decompress[:-4] + "1"))
                    zip_file.extract(file, path_decompress[:-4] + "1")  # 解壓位置,pwd="1234".encode('utf-8')
                else:
                    zip_file.extract(file, path_decompress[:-4])  # 解壓位置
            zip_file.close()
        else:
            print(path_each, "非zip文件,不進行解壓!")
            continue

四、完整代碼

# -*- coding: utf-8 -*-
"""
@Time : 2023/8/28 14:47
@Auth : RS迷途小書童
@File :Compress and Decompress Folders.py
@IDE :PyCharm
@Purpose:批量壓縮/解壓文件夾
"""
import os
import zipfile
def Compress_path_zip(path_all):
    path_all_list = os.listdir(path_all)
    # 列出總文件夾內(nèi)所有需要壓縮的文件夾
    for path_each in path_all_list:
        path_compress = os.path.join(path_all, path_each)
        # 待壓縮的絕對路徑
        if os.path.isdir(path_compress):
            print("正在壓縮:%s" % path_each)
            # 遍歷所有需要壓縮的文件夾
            if os.path.exists(path_all + "%s.zip" % path_each):
                print(path_all + "%s1.zip" % path_each+"已存在,新文件名為'%s'" % (path_all + "%s1.zip" % path_each))
                zip_file = zipfile.ZipFile(path_all + "%s1.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
                # 創(chuàng)建的壓縮對象用于執(zhí)行后續(xù)操作
                # file_list = zip_file.namelist()
                # 列出壓縮文件夾中所有文件
            else:
                zip_file = zipfile.ZipFile(path_all + "%s.zip" % path_each, 'w', zipfile.ZIP_DEFLATED, allowZip64=True)
            file_list = os.listdir(path_compress)
            # 待壓縮文件夾內(nèi)所有文件
            # zip_file.setpassword(b'123')
            for file_each in file_list:
                # 遍歷所有文件夾內(nèi)的文件
                file_path = os.path.join(path_compress, file_each)
                zip_file.write(file_path, file_each)
            zip_file.close()
        else:
            print(path_each, "不是文件夾,不進行壓縮")
            continue
def Decompress_path_zip(path_all):
    path_all_list = os.listdir(path_all)
    for path_each in path_all_list:
        # 遍歷所有需要壓縮的文件夾
        if path_each.endswith('.zip'):
            print("正在解壓:%s" % path_each)
            path_decompress = os.path.join(path_all, path_each)
            zip_file = zipfile.ZipFile(path_decompress, 'r')  # 壓縮文件位置
            for file in zip_file.namelist():
                if os.path.exists(path_decompress[:-4]):
                    print("'%s'" % path_decompress[:-4], "已存在,新文件名為'%s'" % (path_decompress[:-4] + "1"))
                    zip_file.extract(file, path_decompress[:-4] + "1")  # 解壓位置,pwd="1234".encode('utf-8')
                else:
                    zip_file.extract(file, path_decompress[:-4])  # 解壓位置
            zip_file.close()
        else:
            print(path_each, "非zip文件,不進行解壓!")
            continue
if __name__ == "__main__":
    path = "G:/try/"
    # Compress_path_zip(path)
    Decompress_path_zip(path)

本來是想將壓縮加密文件和解壓加密文件寫出來的,結(jié)果zipfile庫好像不支持加密文件,所以就沒寫。雖然解壓加密文件可以,但是很呆,因為只有使用傳統(tǒng)加密的zip文件,才可以使用密碼解壓,不是傳統(tǒng)加密的就算密碼正確他也不解壓,所以就都不寫啦。大家如果想用的話,直接修改路徑就行。

到此這篇關(guān)于Python實現(xiàn)批量壓縮解壓文件(zip、rar)的文章就介紹到這了,更多相關(guān)Python 批量壓縮解壓文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

林甸县| 台前县| 扎鲁特旗| 大新县| 日喀则市| 宜春市| 黔南| 克东县| 都江堰市| 长沙市| 荣成市| 阳原县| 清流县| 河津市| 循化| 嘉定区| 读书| 深圳市| 绍兴市| 射阳县| 连云港市| 涿州市| 治县。| 通山县| 彰化市| 永嘉县| 盐亭县| 南京市| 平湖市| 莱西市| 云阳县| 闻喜县| 永登县| 府谷县| 屯留县| 沛县| 五原县| 鲁甸县| 英超| 乐陵市| 灵寿县|