2015-04-07 71 views
2

我希望從sample.tar.gz文件中提取一些選定的文件(不需要提取sample.tar.gz中的所有文件文件)文件結構如下所示。如何從sample.tar.gz文件中提取選定的文件使用gpython腳本

sample.tar.gz is the base file, under this base file following files are contained. 
hello_usb.tar.gz 
hello_usb1.tar.gz 
hello_usb2.tar.gz 
world_usb1.tar.gz 
world_usb2.tar.gz 
world_usb3.tar.gz 

我想只提取「hello_ *」文件將被提取(而提取它應該創建一個fiolder名稱相同,例如文件名,而提取hello_usb.tar.gz文件,它應該創建一個文件夾名稱叫做hello_usb.tar.gz/...)

我試着用下面的代碼,但沒有運氣。

tar = tarfile.open("D:\Python34\Testing\sample.tar.gz", "r:gz") 
only_names = tar.getnames() 
for count in range(len(only_names)): 
    print (only_names[count][:9]) 
    if only_names[count][:9] == "hello_usb": 
     tar.extract(only_names[count], path = "D:\Python34\Testing") 
     #tar.extractfile(only_names[count]) 

您的幫助將高度讚賞

回答

1

這樣的事情可能工作。

import shutil 
import glob 
import os 

with tarfile.open('D:\Python34\Testing\sample.tar.gz', 'r:gz') as tar: 
    tar.extractall() 
    os.chdir('sample') 
    for arch in glob.glob('hello_*'): 
     shutil.unpack_archive(arch, 'D:\Python34\Testing') 
相關問題