zoukankan      html  css  js  c++  java
  • python替换jar包(zip)中的文件

    import zipfile
    import os
    import shutil
    import time

    filename = "C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE.jar" # 待解压文件,zip解压同样适用于jar!!!划重点
    path2 = "C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE" # 解压路径

    fz = zipfile.ZipFile(filename, 'r')
    for file in fz.namelist():
    fz.extract(file, path2)

    # 删除删除main.ftl文件
    delete_filename = 'C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE\freemarkermain.ftl'
    if os.path.exists(delete_filename):
    os.remove(delete_filename)
    # time.sleep(60)
    # shutil.copy(文件的路径,另一个目录);拷贝main.ftl到准备压缩的目录下
    shutil.copy('C:UsersssbDesktopyufabu_tmpmain.ftl', 'C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE\freemarker\')
    print time.ctime(os.stat('C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE\freemarkermain.ftl').st_mtime)

    # 压缩回去
    startdir = "C:UsersssbDesktopyufabu_tmpibt-1.1.0-REALEASE" # 要压缩的文件夹路径
    file_news = startdir+'.jar' # 压缩后文件夹的名字
    z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED) # 参数一:文件夹名
    for dirpath, dirnames, filenames in os.walk(startdir): # os.walk 遍历目录
    fpath = dirpath.replace(startdir, '') # 这一句很重要,不replace的话,就从根目录开始复制
    fpath = fpath and fpath + os.sep or '' # os.sep路径分隔符
    for filename in filenames:
    z.write(os.path.join(dirpath, filename), fpath+filename)
    # os.path.join()函数用于路径拼接文件路径。
    # os.path.split(path)把path分为目录和文件两个部分,以列表返回
    print '压缩成功'
    z.close()

    借鉴网址:
    https://www.cnblogs.com/pipihaoke/p/8033844.html
    http://www.php.cn/python-tutorials-394048.html

  • 相关阅读:
    LINUX下使用crontab进行RMAN备份实验
    cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
    整型与字符型之间转化
    MFC的最大化,最小化,关闭
    [置顶] IT屌丝的离职申请
    The Priest Mathematician
    jQuery入门学习贴
    poj3308Paratroopers(最小割)
    Nginx 开启 debug 日志的办法
    关于产品的一些思考——(四十二)网易之有道云笔记协同版
  • 原文地址:https://www.cnblogs.com/sunmoon1993/p/10411345.html
Copyright © 2011-2022 走看看