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

  • 相关阅读:
    Spring static 静态属性注入
    大众点评Cat--架构分析
    rxjava
    TCP/IP协议三次握手与四次握手流程解析
    [SDOI2014]数数
    CF-GYM101741K. Consistent Occurrences
    [JSOI2012]玄武密码
    [POI2000]病毒
    [JSOI2007]文本生成器
    [HNOI2006]最短母串问题
  • 原文地址:https://www.cnblogs.com/sunmoon1993/p/10411345.html
Copyright © 2011-2022 走看看