Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gpython脚本从sample.tar.gz文件中提取选定文件_Python_Python 3.x - Fatal编程技术网

如何使用gpython脚本从sample.tar.gz文件中提取选定文件

如何使用gpython脚本从sample.tar.gz文件中提取选定文件,python,python-3.x,Python,Python 3.x,我想从sample.tar.gz文件中提取一些选定的文件(不需要提取sample.tar.gz文件中的所有文件)。文件结构如下所示 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

我想从sample.tar.gz文件中提取一些选定的文件(不需要提取sample.tar.gz文件中的所有文件)。文件结构如下所示

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_*”文件(例如,提取时应创建一个与文件名相同的文件夹名,提取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])

非常感谢您的帮助

像这样的事情可能会奏效

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')