Tengo un archivo tar en el que tengo un directorio que necesito extraer en un directorio determinado. Por ejemplo: I tienen un directorioExtraiga todos los archivos con la ruta del directorio en el directorio dado
TarPrefix/x/y/z
en un archivo tar Quiero extraerlo en un directorio de destino dado por ejemplo: extraído/a/este directorio debe contener todos los archivos y directorios contenidos en el directorio TarPrefix/x/y/z.
subdir_and_files = [ tarinfo for tarinfo in tar.getmembers()
if tarinfo.name.startswith("subfolder/")
]
para obtener la lista de todos los miembros en la ruta del directorio "subcarpeta /" y luego extraerla utilizando tar.extractall(extracted/a,subdir_and_files)
pero extrae todos los miembros con su ruta de directorio Por ejemplo, esto se traduce en extraída/a/x/y/z. ¿Podría ayudarme a extraer estos archivos en la carpeta indicada?
No sé, pero esta cuestión parece ser una especie de lo contrario de la suya: http: //stackoverflow.com/questions/2239655/python-tarfile-adding-files-without-directory-hiearchy Quizás puedas usar extract() en lugar de extractall() y ver qué puedes hacer, posiblemente modificando los objetos TarInfo que tienes conseguido en subdir_and_files? –
Perdón por hacer una pregunta para principiantes. Soy un principiante en Python y no encontré ninguna respuesta en google por eso hice esa pregunta. Para ayudar a otros, quiero responder esta pregunta. Solo necesita cambiar el valor del atributo tarinfo.name al valor correcto. es decir, en mi ejemplo dado 'tarinfo.name = tarinfo.name [len (Tarprefix/x/y/z):]' y luego usar el mismo código funciona. – gaurav
Traté de responder mi propia pregunta, pero no estoy autorizado hasta las ocho horas, así que estaba esperando hasta entonces. – gaurav