2016-01-18 3 views
2

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

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() 
+0

Взгляните: http://stackoverflow.com/questions/6149457/extracting-file-from-tarfile-with-only-basename-using-python –

ответ

1

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

lines = f.readlines() 

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

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

Смежные вопросы