怎么用python做一個解壓縮小工具,以后再也不用下載各種格式的解壓縮軟件了...

經常由于各種壓縮格式的不一樣用到文件的解壓縮時就需要下載不同的解壓縮工具去處理不同的文件,以至于桌面上的壓縮工具就有三四種,于是使用python做了一個包含各種常見格式的文件解壓縮的小工具。

你所需要的網站建設服務,我們均能行業靠前的水平為你提供.標準是產品質量的保證,主要從事成都做網站、網站設計、企業網站建設、成都做手機網站、網頁設計、高端網站設計、網頁制作、做網站、建網站。成都創新互聯擁有實力堅強的技術研發團隊及素養的視覺設計專才。

閱讀全文

常見的壓縮格式主要是下面的四種格式:

zip 格式的壓縮文件,一般使用360壓縮軟件進行解壓縮。
tar.gz 格式的壓縮文件,一般是在linux系統上面使用tar命令進行解壓縮。
rar 格式的壓縮文件,一般使用rar壓縮軟件進行解壓縮。
7z 格式的壓縮文件,一般使用7-zip壓縮軟件進行解壓縮。

導入zip格式的解壓縮處理的非標準庫。

import os
import zipfile as zip

編寫zip解壓縮格式的文件壓縮函數。

def do_zip(source_, target_file):
    '''
    zip文件壓縮
    :param source_: 原始文件路徑
    :param target_file: 目標文件路徑
    :return:
    '''
    zip_file = zip.ZipFile(target_file, 'w')
    pre_len = len(os.path.dirname(source_))
    for parent, dirnames, filenames in os.walk(source_):
        for filename in filenames:
            print(f'{filename}')
            path_file = os.path.join(parent, filename)
            arcname = path_file[pre_len:].strip(os.path.sep)
            zip_file.write(path_file, arcname)

    zip_file.close()

編寫zip解壓縮格式的文件解壓縮函數。

def un_zip(source_file, target_):
    '''
    zip文件解壓縮
    :param source_file: 原始文件路徑
    :param target_: 目標文件路徑
    :return:
    '''
    zip_file = zip.ZipFile(source_file)
    if os.path.isdir(target_):
        pass
    else:
        os.mkdir(target_)
    for names in zip_file.namelist():
        zip_file.extract(names, target_)
    zip_file.close()

導入7z格式的解壓縮處理的非標準庫。

import py7zr

編寫7z解壓縮格式的文件壓縮函數。

def do_7z(source_, target_file):
    '''
    7z文件壓縮
    :param source_:
    :param target_file:
    :return:
    '''
    with py7zr.SevenZipFile(target_file, 'r') as file:
        file.extractall(path=source_)

編寫7z解壓縮格式的文件解壓縮函數。

def un_7z(source_file, target_):
    '''
    7z文件解壓縮
    :param source_file:
    :param target_:
    :return:
    '''
    with py7zr.SevenZipFile(source_file, 'w') as file:
        file.writeall(target_)

導入rar格式的解壓縮處理的非標準庫。

import rarfile as rar

編寫rar解壓縮格式的文件解壓縮函數。

def un_rar(source_file, target_):
    '''
    rar文件解壓縮
    :param source_file: 原始文件
    :param target_: 目標文件路徑
    :return:
    '''
    obj_ = rar.RarFile(source_file.decode('utf-8'))
    obj_.extractall(target_.decode('utf-8'))

接下來開始進入正題了,首先使用print函數打印一下菜單選項,可以讓用戶在啟動軟件后進行菜單的選擇。

print('==========PYTHON工具:文件解壓縮軟件==========')
print('說明:目前支持zip、7z、rar格式')
print('1、文件解壓縮格式:zip/rar/7z')
print('2、文件操作類型(壓縮/解壓):Y/N')
print('3、文件路徑選擇,需要輸入相應的操作文件路徑')
print('==========PYTHON工具:文件解壓縮軟件==========')

使用input函數接收用戶輸入的文件解壓縮格式。

format_ = input('請輸入文件解壓縮的格式:\n')

使用input函數接收用戶輸入的文件操作類型(壓縮/解壓)。

type_ = input('請輸入文件操作的類型:\n')

使用input函數接收用戶輸入的需要操作的文件路徑。

source_ = input('請輸入原始文件的存儲路徑(文件或目錄):\n')

使用input函數接收用戶輸入的生成的新文件的目標路徑。

target_ = input('請輸入目標文件的存儲路徑(文件或目錄):\n')

為了保持輸入的靈活性,加入不同格式不同操作類型的業務判斷。

if format_ == 'zip' and type_ == 'Y':
    do_zip(source_, target_)
elif format_ == 'zip' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == 'rar' and type_ == 'N':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'Y':
    un_zip(source_, target_)
elif format_ == '7z' and type_ == 'N':
    un_zip(source_, target_)

目前功能點是做了三種格式,后期若是需要可能會擴展升級當前的版本。歡迎大家在評論區留言,提供比較新的思路~

【往期精彩】

python中最簡單的turtle繪圖:奧運五環!

知識匯總:python辦公自動化應該學習哪些內容?

python多線程同步售票系統解決思路...

發現幾個好玩的游戲編程平臺,與君共勉!

python四個性能檢測工具,包括函數的運行內存、時間等等...

文章名稱:怎么用python做一個解壓縮小工具,以后再也不用下載各種格式的解壓縮軟件了...
文章URL:http://m.kartarina.com/article8/dsogpop.html

成都網站建設公司_創新互聯,為您提供定制開發網站設計公司軟件開發服務器托管靜態網站網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司
主站蜘蛛池模板: 亚洲精品无码久久久| 69成人免费视频无码专区| 国产日韩精品无码区免费专区国产| 免费A级毛片无码A∨男男| 国产AV无码专区亚洲AV麻豆丫| 少妇无码AV无码一区| 亚洲youwu永久无码精品| 久久人妻av无码中文专区| 精品无码中出一区二区| 久久午夜夜伦鲁鲁片免费无码影视| 国产成人无码精品久久久露脸 | yy111111少妇影院无码| 国精品无码一区二区三区左线| 蕾丝av无码专区在线观看| 无码专区人妻系列日韩精品少妇| 国产真人无码作爱视频免费| 日韩中文无码有码免费视频| 亚洲天堂2017无码中文| 亚洲中文字幕不卡无码| 久久精品无码专区免费| 国模无码一区二区三区| 亚洲GV天堂GV无码男同| 久久无码国产专区精品| 久久精品国产亚洲AV无码娇色| a级毛片无码免费真人久久| 亚洲?V无码成人精品区日韩| 无码人妻一区二区三区免费视频| 精品无码久久久久久国产| 亚洲av中文无码字幕色不卡| 无码乱肉视频免费大全合集| 精品视频无码一区二区三区| 人妻丰满av无码中文字幕| 色窝窝无码一区二区三区色欲| 国产免费无码AV片在线观看不卡| 国产日韩精品中文字无码| 丰满熟妇乱又伦在线无码视频| 亚洲AV综合色区无码一区| 无码精品久久久久久人妻中字| 午夜亚洲AV日韩AV无码大全| 精品无码久久久久久午夜| 中文字幕无码精品亚洲资源网久久|