Substitua os arquivos somente leitura existentes ao usar o tarfile do Python

Estou tentando usar o módulo tarfile do Python para extrair um arquivo tar.g

Gostaria que a extração substituísse qualquer arquivo de destino que ele já exista - esse é o comportamento normal do tarfil

o entanto, estou acertando em cheio que alguns dos arquivos têm proteção contra gravação (por exemplo, chmod 550

Otarfile.extractall() operação realmente falha:

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

Se eu tentar excluir os arquivos da linha de comando normal, posso fazê-lo, só preciso responder uma solicitação:

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

O utilitário tar normal do GNU também lida com esses arquivos sem esforço - apenas os substitui quando você extra

Meu usuário é o proprietário dos arquivos, portanto, não seria difícil chmod recursivamente os arquivos de destino antes de executar o tarfile.extractall. Ou posso usar shutil.rmtree para afastar o alvo de antemão, que é a solução alternativa que estou usando agora. No entanto, isso parece um pouco tol

Existe uma maneira mais Pythonic de manipular arquivos somente leitura no tarfile, usando exceções ou algo semelhant

questionAnswers(2)

yourAnswerToTheQuestion