提取文件并在python中同时重命名它

时间:2016-01-18 15:14:30

标签: python tarfile

我想从我的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 个答案:

答案 0 :(得分:1)

根据您正在使用的方法的docs,返回的文件对象是只读的。这意味着您必须读入数据,然后像往常一样将其写入另一个文件。当您重新编写文件时,可以按照自己的意愿命名:

lines = f.readlines()

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

根据文件格式的格式,您可能需要调整上面的模板。