Programación de tuplas
__Autor_ _? =?willyday
#!/usr/bin/env? python3
¿Importar? Sistema Operativo (Operating System)
¿Importado? [Cálculo] Comando de copia del sistema (abreviatura de sistema)
¿Importar? Hora
¿Importar? Shutier
¿Importado? zipfile
¿Desde dónde? archivo zip? ¿importar? ZIP _deflate
#Clase de procesamiento de archivos Zip
¿Clase? ArchivoZ(objeto):
def? __init__(self, fname,?mode='r',?basedir=""):
self.fname? =?fnname
self.mode? =?¿Cómo
Si? ¿modo.automático? ¿existir? (‘w’, ?a’):
self.zfile? =?archivo zip. ZipFile(fname, modo, ?compression=ZIP_DEFLATED)
otro:
self.zfile? =?archivo zip.
ZipFile(fname, self-mode)
self.basedir? =?basedir
Si? ¿No es así? self.basedir:
self.basedir? =?os.path.dirname(fname)
def? addfile(self, ruta,? arcname=Ninguno):
¿Ruta? =?path.replace('//',?'/')
¿Si? ¿No es así? arcname:
¿Y si? path.startswith(self.basedir):
arcname? =?Ruta[len(self.basedir):]
En caso contrario:
arcname? =?''
self.zfile.write(ruta,?arcname)
def? addfiles(self, ruta):
¿Para qué? ¿camino? ¿existir? Ruta:
¿Y si? isinstance(ruta, tupla):
self addfile(*ruta)
De lo contrario:
self.addfile(ruta)
definición? close(self):
self.zfile.close()
def? extract_to(self,?path):
¿Para qué? ¿pag? ¿existir? self.zfile.namelist():
Autoextraíble (p, ? ruta)
def? extraer(self, ?fname, ?path):
si ? ¿No es así? fname.endswith('/'):
fn? =?os.path.join(ruta,?fname)
ds? =?os.path.dirname(fn)
¿Si? ¿No es así? os.path.exists(ds):
os.makedirs(ds)
¿Qué usar? abierto(nota, WB')? ¿Como? Mujer:
f.write(self.zfile.read(fname))
#Crear un archivo Zip
def? createZip(zarchivo, archivo):
z? =?ZFile(zfile,?w')
z.addfiles(file)
Close()
#Extraiga el archivo Zip al archivo especificado Clip
¿definitivamente? extraerZip(archivoz, ruta):
z? =?ZFile
z.extract_to(path)
Close()
#Extraer rar a la carpeta especificada
def? extractRar(archivoz, ruta):
rar_command1? =?"WinRAR.exe?x?-IBUK?%s?%s "? %?(zfile,?ruta)
rar_command2? =?r " " C:\ winrar .exe "?x?-ibuk?%s?"%s"?%?(zfile,?path)
Pruebe:
res? =? sistema operativo (rar_command1)
if? res? ==?0:
Imprimir("¿Ruta? OK.")
Excepto:
Prueba:
res?=?os(rar_command2)
if?res?=?0:
Imprimir("Éxito ? ¿A dónde ir? ¿Descomprimir? ¿Ese archivo?
format(path))
Excepto:
Print('Error:? ¿Puede ser? ¿No? ¿unrar? ¿Ese? archivo? {}'. format(path)) p>
#?Extraiga varios archivos comprimidos en una carpeta temporal.
¿definitivamente? Extraer archivos (lista de archivos):
¿Newdir? =?str(int(time.time()))
¿Para qué? fn? ¿existir? Lista de archivos:
subdirectorio? =?os.path.join(newdir,?fn)
Si? ¿No es así? os.path.exists(subdirectorio):
os.makedirs(subdirectorio)
¿Y si? fn.endswith('.zip'):
extractZip(fn, subdial)
Elif? fn.endswith('.rar’):
extractRar(fn, subdial)
¿Volver? Newir
#?Encuentra algunos archivos en la carpeta. Devuelve un archivo cuyo contenido contiene todas las cadenas en findtr_list.
¿definitivamente? findstr_at(basedir, file_list,?findstr_list):
¿Archivo? =?[]
¿Para qué? r,? ds,? fs? ¿existir? os.walk(basedir):
¿Para qué? fn? ¿existir? fs:
¿Y si? fn? ¿existir? Lista de archivos:
¿Qué usar? abrir(os.path.join(r,fn))? ¿Como? Mujer:
s? =?Leer()
Si? all(i? in? s? ¿para qué? i? in? findstr_list):
files.append(os.path.join(r,fn))
¿Regresar? Archivo
¿Y si? __nombre__? ==?__main__ ':
¿Archivo? =?[¿Yo? ¿para qué? ¿I? ¿existir? sys.argv[1:]? ¿si? ¿No es así? I.Comenzar con ('-')]
¿Descomprimir el archivo? =?[¿Yo? ¿para qué? ¿I? ¿existir? ¿documento? ¿si? i.endswith('.zip')? ¿aún? i.endswith('.rar')]
archivos xml? =?[¿Yo? ¿para qué? ¿I? ¿existir? ¿documento? ¿si? i.endswith('.xml')]
save_unzipdir? =?¿En serio? ¿si? -¿Sí? ¿existir? sys.argv? ¿De lo contrario? ¿Mal
findstr incorrecto? =?[i.split('=')[-1]? ¿para qué? ¿I? ¿existir? sys.argv? ¿si? I.Empezar con ('- find=')]
¿buscar cadena? =?',?'. join(['`{} `'. ¿Formato (1)? ¿para qué? ¿yo? en? findstr])
¿Nuevodir? =?Extraer archivos (descomprimir archivos)
Resultado=? findstr_at(newdir,xmlfiles,?findstr)
¿Si? ¿No es así? Resultado:
¿MSG? =?No? ¿de? ¿eso? ¿documento? ¿Incluir? ¿eso? ¿Dado? ¿Cadena? {}.'
print(msg.format(findstring))
De lo contrario:
¿MSG? =?'{}?Archivo? ¿Incluir? ¿eso? ¿Dado? ¿Cadena? {}:'
print(msg.format(len(resultado),?findstring))
Imprimir(' \n '.
unirse([i.replace(newdir+os.sep,?'')?¿para qué?i?in?sorted(resultado)])
si? ¿No es así? save_unzipdir:
shutil.rmtree(newdir)$? ¿Python3? ziprar.py? aaa.zip? aaa2.zip? aaa3.zip? aaa.xml? aaa1.xml? aaa2.xml? - find="¿Fue? ¿Fue"? - find="cuando "
¿No? ¿de? ¿eso? ¿documento? ¿Incluir? ¿eso? ¿Dado? ¿Cadena? "¿Es? es`,? "cuándo".
$?python3?ziprar.py?aaa.zip?aaa2.zip?aaa3.zip?aaa.xml?aaa1.xml?aaa2.xml ? - buscar="¿Eso? ¿Era "? - find="I "
2? ¿el archivo? ¿contiene? ¿eso? ¿la cadena dada? "? ¿Es así? `I`:
aaa.zip/aaa2.xml
aaa2.zip/aaa2.xml
$?python3? ziprar.py? aaa.zip? aaa2.zip? aaa3.zip? aaa.xml? aaa1.xml? aaa2.xml? - find="¿Fue?
2?¿Archivo? ¿Incluir? ¿eso? ¿Dado? ¿Cadena? "¿Era? Era `:
aaa.zip/aaa2.xml
aaa2.zip/aaa2.xml