El PATH = R ^ ' E: \ la MiDocumento \ XXX ' # directorio de direcciones para buscar TARGET_PATH = R ^ ' E: \ la MiDocumento \ nueva shiいfuォHikaru la interー\ 1 ' # copiar los resultados de búsqueda a la dirección de destino NAME_PATH = R ^ ' 1.txt ' # para ser leído archivo (buscar simultáneamente múltiples) toma NOMBRE = '' # búsqueda de un NOMBRES = [] # búsqueda personalizada, si relleno en este campo es ignorado carga desde el archivo READ_FROM_FILE = 0 # si el archivo abierto se carga desde importación OS de shutil importación copyfile class Search (): def __init__ (self): self.names = [] self.func = Ninguno self.once = True def __core (self, ruta, nombre): files = os.listdir (ruta) para el archivo en archivos: if os.path.isdir (os.path.join (ruta, archivo) ): auto. __core (os.path.join (ruta, archivo), nombre) elif name en el archivo: self.func (os.path.join (ruta, archivo)) if self.once: return def searchName (self, ruta, nombre, func, once = True): self.func= func self.once = once self. __core (ruta, nombre) def searchNames (self, ruta, nombres, func, once = True): si no es len (nombres): print ( " error de nombres " ), devuelve self.names = names self.func = func self. una vez = una vez por nombre en nombres: self. __core (ruta, nombre) def func (ruta): name = path.split ( ' \\ ' ) tar = os.path.join (TARGET_PATH, name [-1 ]) copyfile (path, tar) def main (): s = Search () # s.searchName (PATH, NAME, func, False) si no es len (NAMES) y READ_FROM_FILE: con open (NAME_PATH, ' r ' , encoding = ' utf-8 ' ) como f: para la línea en f: NAMES.append (line.strip ( ' \ n ' )) s.searchNames (PATH, NAMES, func, False) main ()