国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python實現(xiàn)rar、zip和7z文件的壓縮和解壓

這篇具有很好參考價值的文章主要介紹了Python實現(xiàn)rar、zip和7z文件的壓縮和解壓。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、7z壓縮文件的壓縮和解壓

1、安裝py7zr

我們要先安裝py7zr第三方庫:

pip install py7zr

如果python環(huán)境有問題,執(zhí)行上面那一條安裝語句老是安裝在默認(rèn)的python環(huán)境的話,我們可以執(zhí)行下面這條語句,將第三方庫安裝在項目的虛擬環(huán)境中:

pip install py7zr --target=E:\Python腳本\作業(yè)查重\OS_Study\venv\Lib\site-packages
2、解壓7z文件
import py7zr
# 將壓縮文件解壓到指定目錄
def decompress_7z():
	# 將要解壓的壓縮文件路徑
    archive = py7zr.SevenZipFile(r'E:\Python腳本\作業(yè)查重\20大數(shù)據(jù)班Javaweb新聞系統(tǒng).7z', mode='r')
    # 壓縮文件的解壓目錄
    archive.extractall(path=r'E:\Python腳本\作業(yè)查重\20大數(shù)據(jù)班Javaweb新聞系統(tǒng)')
    archive.close()
3、壓縮成7z文件
import py7zr
# 將指定目錄壓縮到指定壓縮文件test.7z'
def compression_7z():
	# 生成的壓縮文件路徑
    archive = py7zr.SevenZipFile(r'E:\Python腳本\作業(yè)查重\test.7z', mode='w')
    # 需要壓縮的壓縮文件
    archive.writeall(path=r'../test')
    archive.close()

二、rar壓縮文件的壓縮和解壓

1、環(huán)境準(zhǔn)備

我們用到的第三方庫為rarfile,因為我們的這個第三方庫需要用到第三方程序,所以我們要先配一下環(huán)境。

(1)導(dǎo)入unrar模塊:

pip install unrar

(2)下載 unrar library 并按照默認(rèn)安裝路徑安裝,下載鏈接:下載

(3) 編輯環(huán)境變量:

用戶變量 -> 變量名:x64 -> 變量值:C:\Program Files (x86)\UnrarDLL\x64 (默認(rèn)路徑是這個)
系統(tǒng)變量 -> 變量名:UNRAR_LIB_PATH -> 變量值:C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll (默認(rèn)路徑)[32位系統(tǒng)下的變量值為C:\Program Files (x86)\UnrarDLL\UnRAR.dll]

(4)安裝winrar(360軟件中心有):
winrar 的目錄下的 unrar.exe 復(fù)制到 Python 路徑的 Scripts 文件夾下。
(5)重啟Pycharm

2、安裝rarfile

執(zhí)行以下命令:

pip install rarfile
3、解壓rar文件
import rarfile
def decompress_rar():
	# 找到rar文件
    z = rarfile.RarFile(r'E:\Python腳本\作業(yè)查重\2015090103石凱-新聞管理系統(tǒng).rar')  
    # 指定解壓輸出的目錄
    z.extractall(r'E:\Python腳本\作業(yè)查重\2015090103石凱-新聞管理系統(tǒng)')  
    z.close()
    # 刪除壓縮文件
    # os.remove(pathRar)
4、壓縮成rar文件

由于rarfile只能解壓文件不能壓縮文件,所以我們需要調(diào)用第三方程序來完成。

def compress(input_file, output_file, root_path,
        rar_path='D:/"Program Files"/WinRAR/WinRAR.exe'):
    """
    調(diào)用CMD命令壓縮文件/文件夾
    Parameters
    ----------
    input_file : 需要壓縮的文件/文件夾名。從哪一級目錄開始,就會從哪一級開始壓縮;
    output_file : 壓縮文件的輸出路徑及其壓縮的文件名;
        可以是.rar, .zip;
    root_path: input_file 所在目錄;
    rar_path : WinRAR軟件的安裝路徑,
        The default is 'C:/"Program Files"/WinRAR/WinRAR.exe'.
        
    NOTE: 路徑和文件名中帶空格的時候一定要多加一重引號?。?    """
    cmd_command = r'%s a %s %s' % (rar_path, output_file, input_file)
    print(root_path)
    os.chdir(root_path) # 切換工作目錄
    print(cmd_command)
    os.system(cmd_command)
    
    if os.system(cmd_command)==0:
        print('Successful backup to', output_file)
    else:
        print('Backup FAILED', input_file)  


def rar(paths):
    files = os.listdir(paths)
    for path in files:
        input_file = '"' + path + '"'
        out = path.split('.')[0] + '_bak.rar'
        out_file = '"' + out + '"'
        print(path)
        print(out)
        compress(input_file,out_file,paths)

參考文章:https://blog.csdn.net/hanmengaidudu/article/details/120193682

三、zip文件的壓縮和解壓

1、安裝zipfile

執(zhí)行以下命令:

pip install zipfile
2、解壓zip文件

使用zipfileextract()extractall()方法直接解壓時,文件名可能會出現(xiàn)亂碼,所以我們要特別解決這個問題:

# 出現(xiàn)亂碼時解碼
def recode(raw: str) -> str:
    try:
        return raw.encode('cp437').decode('gbk')

    except:
        return raw.encode('utf-8').decode('utf-8')

# 解壓zip文件
def decompress_zip(pathZip, obj):
    zipFile = zipfile.ZipFile(pathZip)  # 壓縮包路徑
    zipFileList = zipFile.namelist()  # 獲取壓縮包里所有文件
    print('-------------------正在解壓-----------------------')
    for f in zipFileList:
        zipFile.extract(f, obj)  # 循環(huán)解壓文件到指定目錄
        name1 = os.path.join(obj, f)  # 亂碼文件名
        name2 = os.path.join(obj, recode(f))  # 解碼后文件名
        os.rename(name1, name2)  # 文件重命名
    zipFile.close()  # 關(guān)閉文件釋放內(nèi)存
    print('-------------------解壓完成-----------------------')
    # 刪除壓縮文件
    # os.remove(pathZip)
3、壓縮成zip文件

參考文章:https://blog.csdn.net/Likianta/article/details/126710855

參考文章:https://blog.csdn.net/ooowwq/article/details/125949394

參考 文章:https://blog.csdn.net/qq_36182112/article/details/127630950

四、批量解壓

如果想要實現(xiàn)批量解壓某個目錄下的全部壓縮包的話,可以配合python自帶的od庫來實現(xiàn),一些參考代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-470747.html

# 批量解壓文件
def batch_decompress():
    file_names = os.listdir(r'E:\Python腳本\作業(yè)查重\20大數(shù)據(jù)班Javaweb新聞系統(tǒng)')  # 壓縮文件所在的目錄
    # print(file_names)

    print('-------------------正在解壓-----------------------')
    for file_name in file_names:
        # 將文件名與目錄拼接起來,得到文件絕對路徑地址
        path_name = os.path.join(r'E:\Python腳本\作業(yè)查重\20大數(shù)據(jù)班Javaweb新聞系統(tǒng)', file_name)
        print(path_name)
        if path_name[path_name.find('.')+1:] == 'zip':
            decompress_zip(path_name)
        elif path_name[path_name.find('.')+1:] == 'rar':
            decompress_rar(path_name)
        else:
            decompress_7z(path_name)
    print('-------------------解壓完成-----------------------')

到了這里,關(guān)于Python實現(xiàn)rar、zip和7z文件的壓縮和解壓的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux 壓縮、解壓文件的 4 種方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    Linux 壓縮、解壓文件的方式有如下幾種: tar 是一種常用的打包工具,可以將多個文件或目錄打包成一個 tar 包,也可以將一個 tar 包解壓縮到指定的目錄。 1.1. 壓縮: 1.2. 解壓: 1.3. tar 命令各參數(shù)含義 tar 命令是 Linux 下常用的打包和壓縮工具,用于將多個文件或目錄打包成一

    2024年02月10日
    瀏覽(36)
  • 【Linux筆記】壓縮、解壓文件的 4 種方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    【Linux筆記】壓縮、解壓文件的 4 種方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法

    目錄 1、使用 tar 命令: 1.1. 壓縮: 1.2. 解壓: 1.3. tar 命令各參數(shù)含義 2. gzip、gunzip gzip 命令: 壓縮文件: 保留原始文件,創(chuàng)建壓縮文件: 保留原始文件,顯示壓縮進(jìn)度: gunzip 命令: 解壓文件: 保留壓縮文件,創(chuàng)建原始文件: 保留壓縮文件,顯示解壓進(jìn)度: 3. zip、unzip

    2024年02月03日
    瀏覽(26)
  • .net rar zip壓縮包解壓

    引入? SharpCompress https://download.csdn.net/download/weixin_42020830/87737306 string?targetFile=\\\"c:\\\\test.zip\\\"; string?zipFile=\\\"c:\\\\test\\\"; ?using (Stream stream =System.IO.File.OpenRead(targetFile)) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? var reader = ReaderFactory.Open(stream); ? ? ? ? ? ? ? ? ? ? ? ? while (r

    2024年02月01日
    瀏覽(15)
  • 【Python腳本】使用Python解壓zip、rar文件

    Python 本身不支持 rar 文件的解壓,需要先安裝相關(guān)依賴才可使用 pip3 install rarfile 安裝rarfile庫 (注意是解壓,壓縮這個方法不支持) 壓縮包中存在多個文件時,可以使用for循環(huán)進(jìn)行批量解壓 安裝 unrar 模塊:pip install unrar 下載安裝 unrar library,網(wǎng)址:http://www.rarlab.com/rar/UnRAR

    2024年02月05日
    瀏覽(25)
  • linux_文件壓縮、文件解壓(gzip命令、gunzip 命令、bzip2命令、bunzip2命令、tar命令、rar命令、zip命令)

    接上一篇:linux用戶管理(查看在線用戶who命令、創(chuàng)建用戶adduser命令、創(chuàng)建用戶組groupadd命令、查看用戶組groups命令、刪除用戶、設(shè)置用戶密碼passwd命令) 本次來分享怎樣在 linux中壓縮和解壓文件夾 ,在linux中壓縮解壓的方式有 5種 ,分別是 gz格式壓縮解壓、bz2格式壓縮解壓、

    2024年02月01日
    瀏覽(23)
  • Linux中_使用tar_gzip_zip_rar_命令_打包和解包_壓縮和解壓

    1.3.1、到當(dāng)前目錄下 1.3.2、到指定目錄下 3.1.1、壓縮當(dāng)前目錄: 3.1.2、壓縮指定目錄: 3.2.1、到當(dāng)前目錄 3.2.2、到指定目錄 4.2.1、壓縮文件本身: 4.2.2、遞歸壓縮,將指定目錄下所有文件和子目錄一并壓縮:

    2024年02月04日
    瀏覽(22)
  • 服務(wù)器使用——解壓常見文件tar、zip、rar等

    服務(wù)器使用——解壓常見文件tar、zip、rar等

    1.tar文件 2.zip文件 這篇關(guān)于zip博客寫的挺全的,這里直接放鏈接。 3.rar文件 首先下載RAR 6.21 for Linux x64 下載完后安裝: 加壓后可以看到有一個rar.txt,里面有rar具體的使用方法。這里粘貼復(fù)制下來

    2024年02月10日
    瀏覽(20)
  • 【Linux】解壓縮文件命令(7z、zip,tar等)

    壓縮文件: zip compressed.zip file1.txt file2.txt folder/ 解壓文件: unzip compressed.zip -d destination_folder/ 壓縮文件: 7z a compressed.7z file1.txt file2.txt folder/ 解壓文件: 7z x compressed.7z -odestination_folder/ 常用于對單個文件進(jìn)行壓縮,生成 .gz 后綴的壓縮文件??梢允褂靡韵旅钸M(jìn)行壓縮和解壓

    2024年02月10日
    瀏覽(48)
  • 輕量級力量:深入MiniZip庫,實現(xiàn)C++中ZIP文件的簡便壓縮與解壓

    輕量級力量:深入MiniZip庫,實現(xiàn)C++中ZIP文件的簡便壓縮與解壓

    ? MiniZip是一個輕量級的壓縮庫,它是zlib庫的一部分,用于在C++中進(jìn)行ZIP文件的壓縮和解壓縮操作。以下是MiniZip的一些功能和優(yōu)點: 功能: 創(chuàng)建ZIP文件: ?MiniZip可以用于創(chuàng)建包含一個或多個文件的ZIP歸檔。 壓縮: ?MiniZip支持使用不同的壓縮算法對文件進(jìn)行壓縮,例如DEFL

    2024年02月04日
    瀏覽(23)
  • Java的zip文件壓縮與解壓:ZipInputStream,ZipOutputStream

    Java的zip文件壓縮與解壓:ZipInputStream,ZipOutputStream

    ?? 用ZipOutputStream來壓縮一個文件夾時,要搭配ZipEntry來使用。ZipEntry是用來創(chuàng)建壓縮文件的。 ?? 舉個例子,向壓縮文件中添加一個文件的代碼: 如下圖: ?? 在創(chuàng)建ZipEntry對象時可以指定文件在壓縮包的位置:new ZipEntry(“second-dirsecond-01.txt”) ?? 在使用ZipOutputStrea

    2024年02月16日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包