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

Python實現(xiàn)多級目錄壓縮與解壓文件的方法

 更新時間:2018年09月01日 10:35:43   作者:sondx  
這篇文章主要介紹了Python實現(xiàn)多級目錄壓縮與解壓文件的方法,涉及Python針對文件路徑的遍歷、判斷以及文件壓縮、解壓縮等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Python實現(xiàn)多級目錄壓縮與解壓文件的方法。分享給大家供大家參考,具體如下:

咱向來就是拿來主意,也發(fā)個東西供同行“拿來”使用吧

咱信奉的就是少量的代碼完成大量的工作,雖然代碼不多,但還是要用大腦的。發(fā)出來供大家參考

功能:

  • 支持中文路徑,支持多級目錄
  • 支持跨平臺,在linux和window下都可直接使用
  • 壓縮的多態(tài)性
    • 壓縮包不帶級父文件夾目錄壓縮
    • 壓縮包帶父級文件夾目錄
    • 不指定目標(biāo)文件與路徑壓縮
    • 指定壓縮包名稱不指定路徑壓縮

還是看代碼吧

#coding:utf-8
#壓縮解壓文件模塊
#支持中文路徑,支持多級目錄
#支持跨平臺,在linux和window下都可直接使用
#python 2.7.2
#author:xieShuxu
#QQ:258356793
#Email:sondx@qq.com
import zipfile,os
class ZipException(Exception):
    pass
def unZipFile(zipPath,unZipPath=''):
    '''解壓文件
    zipPath 要解壓的文件路徑
    unZipPath 解壓目標(biāo)路徑 默認(rèn)解壓到zipPath所在目錄
    '''
    try:
        filePath=filePath.decode('utf-8');
        zipFilePath=zipFilePath.decode('utf-8');
    except:
        print '================'
    if not os.path.exists(zipPath):
        raise ZipException,'function unZipFile:not exists file or dir(%s)' %zipPath;
    if unZipPath=='':
        unZipPath=os.path.splitext(zipPath)[0];
    if not unZipPath.endswith(os.sep):
        unZipPath+=os.sep;
    z = zipfile.ZipFile(zipPath, 'r')
    #zipInfolist=z.namelist();
    for k in z.infolist():
        savePath=unZipPath+k.filename;
        saveDir=os.path.dirname(savePath);
        if not os.path.exists(saveDir):
            os.makedirs(saveDir);
        f=open(savePath,'wb');
        f.write(z.read(k));
        f.close();
    z.close();
    #print unZipPath
global _iterateExeZipFile;
def exeZipFile(filePath,zipFilePath=''):
    '''壓縮文件
    filePath 要解壓的文件路徑 可以是文件或者目錄
             os.sep結(jié)尾表示壓縮該目錄下的子文件和文件夾 不包含該文件夾,否則包含該文件夾壓縮
    ZipFilePath 壓縮包文件路徑
                也可只傳文件名
                默認(rèn)壓縮到filePath的父級目錄下
    '''
    filePath=filePath.decode('utf-8');
    zipFilePath=zipFilePath.decode('utf-8');
    #壓縮文件不存在直接返回
    if not os.path.exists(filePath):
        raise ZipException,'function exeZipFile:not exists file or dir(%s)' %filePath;
    # 是否包含父級目錄壓縮
    hasPDir=not filePath.endswith(os.sep);
    if not hasPDir:
        filePath=os.path.dirname(filePath);
        print filePath
    #校驗備份文件路徑
    if zipFilePath=='':
        zipFilePath=os.path.splitext(filePath)[0]+'.zip';
    elif zipFilePath.find(os.sep)==-1:#只傳文件名的處理
        zipFilePath=os.path.dirname(filePath)+os.sep+zipFilePath;
    #校驗創(chuàng)建備份路徑目錄
    if not os.path.exists(os.path.dirname(zipFilePath)):
        os.makedirs(os.path.dirname(zipFilePath));
    #初始化壓縮包中的根目錄
    zipRoot='';
    if hasPDir:
        zipRoot=os.path.split(filePath)[1];
    #開始壓縮
    z = zipfile.ZipFile(zipFilePath, 'w')
    if os.path.isfile(filePath):
        z.write(filePath,os.path.split(filePath)[1]);
    else:
        _iterateExeZipFile(filePath,zipRoot,z);
    z.close();
def _iterateExeZipFile(dirPath,zipRoot,z):

壓縮使用的例子:

if __name__=='__main__':
    #壓縮包不帶級父文件夾目錄
    testdir='D:\\codeSource\\linuxAgent\\'
    zipFilePath='D:\\codeSource\\壓縮包不帶父級目錄.zip'
    exeZipFile(testdir,zipFilePath);
    #壓縮包帶父級文件夾目錄
    testdir='D:\\codeSource\\linuxAgent'#不帶后綴斜線
    zipFilePath='D:\\codeSource\\壓縮包帶父級目錄.zip'
    exeZipFile(testdir,zipFilePath);
    #不指定目標(biāo)文件與路徑壓縮
    testdir='D:\\codeSource\\linuxAgent'
    exeZipFile(testdir);
    #指定壓縮包名稱不指定路徑壓縮
    testdir='D:\\codeSource\\linuxAgent\\'
    exeZipFile(testdir,'僅指定名稱壓縮包.zip');

解壓的例子:

    #指定解壓目錄解壓文件
    testdir=u'D:\\codeSource\\僅指定名稱壓縮包\\'
    zipFilePath=u'D:\\codeSource\\僅指定名稱壓縮包.zip'
    unZipFile(zipFilePath,testdir);
    #不指定目錄解壓
    zipFilePath=u'D:\\codeSource\\僅指定名稱壓縮包.zip'
    unZipFile(zipFilePath);

好了!就這么多,如果你覺得有用就頂一下吧。有問題也可以聯(lián)系我

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • pyinstaller打包找不到文件的問題解決

    pyinstaller打包找不到文件的問題解決

    這篇文章主要介紹了pyinstaller打包找不到文件的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python+Pygame實戰(zhàn)之泡泡游戲的實現(xiàn)

    Python+Pygame實戰(zhàn)之泡泡游戲的實現(xiàn)

    這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實現(xiàn)泡泡游戲,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下
    2022-07-07
  • python實現(xiàn)象棋游戲

    python實現(xiàn)象棋游戲

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)象棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python中六大超時處理方法介紹

    Python中六大超時處理方法介紹

    在?Python?中,超時處理是一項非常常見的需求,尤其是在處理阻塞任務(wù)或并發(fā)任務(wù)時,本文整理了大家常用的六大超時處理方法,感興趣的小伙伴可以參考下
    2025-01-01
  • 在Python中居然可以定義兩個同名通參數(shù)的函數(shù)

    在Python中居然可以定義兩個同名通參數(shù)的函數(shù)

    今天小編就為大家分享一篇在Python中居然可以定義兩個同名通參數(shù)的函數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python中查找缺失值的三種方法

    Python中查找缺失值的三種方法

    本文主要介紹了Python中查找缺失值的三種方法,包括pandas庫的isnull()方法、numpy庫的isnan()方法和scikit-learn庫的SimpleImputer類,感興趣的可以了解一下
    2023-11-11
  • 通俗的講解深度學(xué)習(xí)中CUDA,cudatookit,cudnn和pytorch的關(guān)系

    通俗的講解深度學(xué)習(xí)中CUDA,cudatookit,cudnn和pytorch的關(guān)系

    有些剛?cè)胄械呐笥芽偸歉悴磺宄﨏UDA,cudatookit,cudnn和pytorch的關(guān)系,那么今天這篇文章用通俗易懂的話講解了他們之間的關(guān)系,需要的朋友可以參考下,相信會對你有所幫助
    2023-03-03
  • Python3 中sorted() 函數(shù)的用法

    Python3 中sorted() 函數(shù)的用法

    Sort函數(shù)是list列表中的函數(shù),而sorted可以對list或者iterator進行排序。這篇文章主要介紹了Python3 中sorted() 函數(shù)的用法,需要的朋友可以參考下
    2020-03-03
  • Python操作MongoDB數(shù)據(jù)庫的方法示例

    Python操作MongoDB數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Python操作MongoDB數(shù)據(jù)庫的方法,結(jié)合實例形式分析了Python命令行模式下操作MongoDB數(shù)據(jù)庫實現(xiàn)連接、查找、刪除、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • python反編譯學(xué)習(xí)之字節(jié)碼詳解

    python反編譯學(xué)習(xí)之字節(jié)碼詳解

    這篇文章主要給大家介紹了關(guān)于python反編譯學(xué)習(xí)之字節(jié)碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論

烟台市| 丘北县| 恭城| 壶关县| 昆明市| 扎兰屯市| 集贤县| 耒阳市| 奉新县| 东源县| 丽水市| 安新县| 蒲城县| 商水县| 饶平县| 高淳县| 临西县| 错那县| 日照市| 吉安市| 合作市| 古田县| 同仁县| 芜湖县| 阜新市| 万宁市| 铁岭市| 马山县| 佛教| 邹平县| 高雄县| 民勤县| 瑞安市| 涪陵区| 怀柔区| 郑州市| 镇雄县| 祁门县| 依兰县| 福清市| 汝阳县|