自己并不会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,".")