国产探花免费观看_亚洲丰满少妇自慰呻吟_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):            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿鲁科尔沁旗| 余干县| 五莲县| 武城县| 遂川县| 永宁县| 尼勒克县| 兴仁县| 昆山市| 湟源县| 青阳县| 苗栗市| 池州市| 驻马店市| 宁南县| 两当县| 乡城县| 梅州市| 德阳市| 方城县| 延吉市| 鄯善县| 墨脱县| 浦江县| 阳曲县| 泸州市| 广宗县| 资源县| 镇沅| 南昌市| 凤山县| 故城县| 电白县| 米泉市| 西丰县| 汤原县| 弥勒县| 瑞安市| 新竹县| 金寨县| 岑巩县|