Извлеките файл и переименуйте его одновременно в python

Я хочу извлечь файл с определенным расширением из моего файла tarball и в то же время дать ему конкретное имя. Пока что я могу выбрать нужный файл по расширению и извлечь его. Но как я могу переименовать его так, как я хочу?

tar = tarfile.open('files/compressed/compressed_file.tar.gz')
for member in tar.getmembers():
    if member.isfile() and member.name.endswith('.nii'):
        f = tar.extract(member, 'files/decompressed/')
    else:
        continue
tar.close()

1 ответ

Решение

Согласно документам метода, который вы используете, возвращаемый объект файла доступен только для чтения. Это означает, что вам придется прочитать данные, а затем записать их в другой файл, как обычно. Когда вы переписываете файл, вы можете назвать его так, как хотите:

lines = f.readlines()

with open("your_filename_here.nii", 'w') as output:
    for line in lines:
        output.write(line)

В зависимости от того, как отформатирован ваш файл, вам может понадобиться настроить шаблон выше.

Другие вопросы по тегам