python解压zip脚本

自己并不会python, 但是 网上下了一个 new 游戏合集,需要批量解压zip文件,并提取nes文件出来。 然后磕磕碰碰的按照api写的脚本. 仅供个人使用。。。



# -*- coding: UTF-8 -*-
import zipfile
import  os
import  shutil
files=os.listdir(".")

tmp = "p_y_u_n_z_i_p.zip"
outdir = "out"
if not os.path.exists(outdir):
    os.mkdir(outdir)
else:
    oos=os.listdir(outdir)
    os.chdir(outdir)
    for ccos in oos:
        os.remove(ccos)
    os.chdir("..")
tmpdir = "pyunzip"
if not os.path.exists(tmpdir):
    os.mkdir(tmpdir)
else:
    cs = os.listdir(tmpdir)
    os.chdir(tmpdir)
    for c in cs:

        if os.path.isdir(c):
            ccs = os.listdir(c)
            os.chdir(c)
            for ccss in ccs:
                os.remove(ccss)
            os.chdir("..")
            os.removedirs(c)
        else:
            pass
            # print("rm", c)

    os.chdir("..")
for x in files:
    if os.path.isfile(x) and x.endswith(".zip") and not x==outdir:
        print(x)
        jz=x.split(".zip")[0]+".nes"
        # print( jz)
        # print("222")
        os.rename(x,tmp)
        try:
             zf=zipfile.ZipFile(tmp,"r")
             zf.extractall(tmpdir)
             # print("c1")
             dirs=os.listdir(tmpdir)
             # print("c2")
             os.chdir(tmpdir)
             for cc in dirs:
                 # print("c3")
                 if not os.path.isdir(cc):
                    continue
                 ness=os.listdir(cc)


                 # print("cc3")
                 os.chdir(cc)
                 for nes in ness:
                    # print("nes")
                    # print(nes,jz)
                    # print("n1")
                    os.rename(nes,jz)
                    # print("n2")
                    # print()
                    if not os.path.exists("../../"+outdir+"/"+jz):
                        shutil.move(jz,"../../"+outdir)
                    else :
                        # print ("o1")
                        pass
                 os.chdir("..")
                 # print ("o2")
             os.chdir("..")
             # print ("o3")
             print(jz)
        except:
            pass
            # print("error")
        finally:
            os.rename(tmp,x)



        # f=zipfile.ZipFile(x,"r")
        # for fl in f.namelist():
        #     if (fl.endswith(".nes")):
        #         f.extract(fl,".")

猜你喜欢

转载自blog.csdn.net/yzr1183739890/article/details/73468905