栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

编程记录——python拷贝文件(夹)到指定位置并压缩

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编程记录——python拷贝文件(夹)到指定位置并压缩

#-*- coding:gbk -*-

import os
import sys
import shutil
import zipfile

abspath = os.path.abspath(os.path.dirname(sys.argv[0]))
extract_file_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]),'extract-files-config.txt'))

def copyfiles(desdir, filename, patchname):

    with open(extract_file_path, 'r', encoding='utf-8') as filecfg:
        for line in filecfg:
            srcpath = filename + line.strip()
            if os.path.isfile(srcpath):
                if srcpath.find('README') == -1: #非README文件照原来路径存放
                    filepath = os.path.dirname(line)

                    despath = desdir + '\' + patchname + '\' + filepath
                    if not os.path.isdir(despath): #路径不存在则创建文件夹路径
                        os.makedirs(despath)
                    shutil.copy(srcpath, despath)
                else:                            #README文件存放文件第一级目录下
                    despath = desdir + '\' + patchname
                    if not os.path.isdir(despath):
                        os.makedirs(despath)
                    shutil.copy(srcpath, despath)

def zippingfile(currentpath, patchname):

    zipname = currentpath + '\' + patchname + '.zip'
    z = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)
    startdir = currentpath + '\' + patchname
    for dirpath, dirnames, filenames in os.walk(startdir):
        fpath = dirpath.replace(startdir, '') #这一句很重要,不replace的话,就从根目录开始复制,且replace中的startdir不能写成dirpath,否则所有文件在压缩包内不再具有原目录结构而是都在第一级目录下
        fpath = fpath and fpath + os.sep or '' #这句话不理解
        for filename in filenames:
            z.write(os.path.join(dirpath, filename), os.path.join(fpath, filename))
    z.close()

if __name__ == '__main__':
    filename = abspath + '\..\..\..\'
    desdir = 'e:\123'
    patchname = '321'

    copyfiles(desdir, filename, patchname) #从需要抽取的文件配置.txt中找到文件并拷贝到指定位置,包括文件夹结构
    zippingfile(desdir, patchname) #对抽取完的文件夹进行打包.zip

从指定文件配置中找到文件copy到指定目录并完成打包.zip

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号