Сначала получите список всех файлов.
files = ['/path/to/foo.txt.gz.001', '/path/to/foo.txt.gz.002', '/path/to/foo.txt.gz.003']
Затем выполните итерации по каждому файлу и добавьте в файл результатов.
with open('./result.gz', 'ab') as result: # append in binary mode
for f in files:
with open(f, 'rb') as tmpf: # open in binary mode also
result.write(tmpf.read())
Затем извлечение использует zipfile lib. Вы можете использовать tempfile , чтобы избежать обработки временным zip-файлом.