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

  • 相关阅读:
    发送http请求时,如果token过期了会返回什么
    遍历某个文件夹下所有的文件
    写出冒泡排序的算法
    sql,学生表(student),id,name ,age ,求前10个年龄最大的
    给一个无序数组,输出这个数组的前n个最大的
    python随机数模块random
    java --String、StringBuffer、StringBuilder
    java内存空间
    第四次寒假作业
    寒假作业3
  • 原文地址:https://www.cnblogs.com/sunmoon1993/p/10411345.html
Copyright © 2011-2022 走看看