obreescriba los archivos de solo lectura existentes cuando use el archivo tar de Python

Estoy intentando utilizar el módulo tarfile de Python para extraer un archivo tar.gz.

Me gustaría que la extracción sobrescribiera los archivos de destino si ya existen; este es el comportamiento normal de tarfile.

in embargo, estoy golpeando una snitch porque algunos de los archivos tienen protección contra escritura (por ejemplo, chmod 550).

Lostarfile.extractall() la operación realmente falla:

IOError: [Errno 13] Permission denied '/foo/bar/file'

Si intento eliminar los archivos de la línea de comandos normal, puedo hacerlo, solo necesito responder un mensaje:

$ rm <filename>
rm: <filename>: override protection 550 (yes/no)? yes

La utilidad normal GNU tar también maneja estos archivos sin esfuerzo, simplemente los sobrescribe cuando los extrae.

Mi usuario es el propietario de los archivos, por lo que no sería difícil modificar de forma recursiva los archivos de destino antes de ejecutar tarfile.extractall. O puedo usar shutil.rmtree para volar el objetivo de antemano, que es la solución que estoy usando ahora ... Sin embargo, eso se siente un poco hack.

Existe una forma más pitónica de manejar la sobrescritura de archivos de solo lectura dentro de tarfile, utilizando excepciones o algo similar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta