Quero criar um script para descompactar o arquivo (.tar.gz) via (Python)

Estou tentando criar um script para descompactar todos os arquivos .tar.gz das pastas em um diretório. Por exemplo, terei um arquivo que ele chama (testing.tar.gz). Então, se eu fizer isso manualmente, posso pressionar para "extrair aqui", o arquivo .tar.gz criará um novo arquivo e chamará testing.tar. Finalmente, se eu repetir o processo de pressionar "extrair aqui", o arquivo .tar me produz todos os arquivos .pdf.

Gostaria de saber como posso fazê-lo, e eu tenho o meu código aqui e parece que realmente não funciona.

import os
import tarfile
import zipfile

def extract_file(path, to_directory='.'):
    if path.endswith('.zip'):
        opener, mode = zipfile.ZipFile, 'r'
    elif path.endswith('.tar.gz') or path.endswith('.tgz'):
        opener, mode = tarfile.open, 'r:gz'
    elif path.endswith('.tar.bz2') or path.endswith('.tbz'):
        opener, mode = tarfile.open, 'r:bz2'
    else: 
        raise ValueError, "Could not extract `%s` as no appropriate extractor is found" % path

    cwd = os.getcwd()
    os.chdir(to_directory)

    try:
        file = opener(path, mode)
        try: file.extractall()
        finally: file.close()
    finally:
        os.chdir(cwd)

questionAnswers(3)

yourAnswerToTheQuestion