国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現多級目錄壓縮與解壓文件的方法

2020-02-15 22:53:02
字體:
來源:轉載
供稿:網友

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

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

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

功能:

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

還是看代碼吧

#coding:utf-8#壓縮解壓文件模塊#支持中文路徑,支持多級目錄#支持跨平臺,在linux和window下都可直接使用#python 2.7.2#author:xieShuxu#QQ:258356793#Email:sondx@qq.comimport zipfile,osclass ZipException(Exception):    passdef unZipFile(zipPath,unZipPath=''):    '''解壓文件    zipPath 要解壓的文件路徑    unZipPath 解壓目標路徑 默認解壓到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 unZipPathglobal _iterateExeZipFile;def exeZipFile(filePath,zipFilePath=''):    '''壓縮文件    filePath 要解壓的文件路徑 可以是文件或者目錄             os.sep結尾表示壓縮該目錄下的子文件和文件夾 不包含該文件夾,否則包含該文件夾壓縮    ZipFilePath 壓縮包文件路徑                也可只傳文件名                默認壓縮到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;    #校驗創建備份路徑目錄    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):            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 抚远县| 忻城县| 灵寿县| 安康市| 尚义县| 平远县| 视频| 大邑县| 龙州县| 雷波县| 太仆寺旗| 墨玉县| 呼伦贝尔市| 中西区| 昆山市| 仪陇县| 千阳县| 昌宁县| 沙坪坝区| 精河县| 高要市| 哈尔滨市| 开平市| 郴州市| 苏尼特左旗| 东海县| 弥勒县| 莲花县| 民乐县| 巴彦淖尔市| 黄冈市| 丹棱县| 双桥区| 永川市| 宁安市| 灵寿县| 松江区| 贵德县| 蛟河市| 凌云县| 阿克陶县|