当前位置: 首页>>代码示例>>Python>>正文


Python TarFile.open方法代码示例

本文整理汇总了Python中tarfile.TarFile.open方法的典型用法代码示例。如果您正苦于以下问题:Python TarFile.open方法的具体用法?Python TarFile.open怎么用?Python TarFile.open使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tarfile.TarFile的用法示例。


在下文中一共展示了TarFile.open方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def __init__(self, zonefile_stream=None):
        if zonefile_stream is not None:
            with TarFile.open(fileobj=zonefile_stream) as tf:
                self.zones = {zf.name: tzfile(tf.extractfile(zf), filename=zf.name)
                              for zf in tf.getmembers()
                              if zf.isfile() and zf.name != METADATA_FN}
                # deal with links: They'll point to their parent object. Less
                # waste of memory
                links = {zl.name: self.zones[zl.linkname]
                         for zl in tf.getmembers() if
                         zl.islnk() or zl.issym()}
                self.zones.update(links)
                try:
                    metadata_json = tf.extractfile(tf.getmember(METADATA_FN))
                    metadata_str = metadata_json.read().decode('UTF-8')
                    self.metadata = json.loads(metadata_str)
                except KeyError:
                    # no metadata in tar file
                    self.metadata = None
        else:
            self.zones = {}
            self.metadata = None 
开发者ID:MediaBrowser,项目名称:plugin.video.emby,代码行数:24,代码来源:__init__.py

示例2: test_download_bucket_with_prefix

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_download_bucket_with_prefix(self):
        """Test to verify that basic report downloading works."""
        fake_bucket = tempfile.mkdtemp()
        mytar = TarFile.open("./koku/masu/test/data/test_local_bucket_prefix.tar.gz")
        mytar.extractall(fake_bucket)
        test_report_date = datetime(year=2018, month=8, day=7)
        with patch.object(DateAccessor, "today", return_value=test_report_date):
            report_downloader = ReportDownloader(
                self.mock_task,
                self.fake_customer_name,
                self.fake_auth_credential,
                fake_bucket,
                Provider.PROVIDER_AWS_LOCAL,
                self.aws_provider_uuid,
                cache_key=self.fake.word(),
            )
            # Names from test report .gz file
            report_downloader.download_report(test_report_date)
        expected_path = "{}/{}/{}".format(DATA_DIR, self.fake_customer_name, "aws-local")
        self.assertTrue(os.path.isdir(expected_path))

        shutil.rmtree(fake_bucket) 
开发者ID:project-koku,项目名称:koku,代码行数:24,代码来源:test_aws_local_report_downloader.py

示例3: test_download_missing_month

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_download_missing_month(self):
        """Test to verify that downloading a non-existant month throws proper exception."""
        fake_bucket = tempfile.mkdtemp()
        mytar = TarFile.open("./koku/masu/test/data/test_local_bucket_prefix.tar.gz")
        mytar.extractall(fake_bucket)
        test_report_date = datetime(year=2018, month=7, day=7)
        with patch.object(DateAccessor, "today", return_value=test_report_date):
            report_downloader = ReportDownloader(
                self.mock_task,
                self.fake_customer_name,
                self.fake_auth_credential,
                fake_bucket,
                Provider.PROVIDER_AWS_LOCAL,
                1,
                cache_key=self.fake.word(),
            )
            # Names from test report .gz file
            report_downloader.download_report(test_report_date)
        expected_path = "{}/{}/{}".format(DATA_DIR, self.fake_customer_name, "aws-local")
        self.assertFalse(os.path.isdir(expected_path)) 
开发者ID:project-koku,项目名称:koku,代码行数:22,代码来源:test_aws_local_report_downloader.py

示例4: _create_model_blob_details_with_custom_setup

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def _create_model_blob_details_with_custom_setup(self, model_blob, custom_package_name, custom_package_version,
                                                     custom_package_path):
        if not os.path.exists(custom_package_path) or not custom_package_path.endswith('.tar.gz'):
            raise Exception("Tar file doesn't exit at: " + custom_package_path)

        with open(custom_package_path) as fp:
            custom_package_blob = fp.read()

        model_blob_with_custom_code = {
            'custom_package_version': custom_package_version,
            'custom_package_name': custom_package_name,
            'custom_package_blob': custom_package_blob
        }

        if model_blob is not None:
            model_blob_with_custom_code['model_blob'] = model_blob

        return model_blob_with_custom_code 
开发者ID:flipkart-incubator,项目名称:Hunch,代码行数:20,代码来源:hunch_publisher.py

示例5: _get_prediction_module_tar_byte_buffer

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def _get_prediction_module_tar_byte_buffer(self, path_to_prediction_module):
        """
        Returns a Byte buffer of a tar file containing the prediction module. The tar file is compressed using bz2
        :param path_to_prediction_module: Path to prediction module file
        :return: Byte buffer with the tar data
        """
        prediction_module_stat = os.stat(path_to_prediction_module)
        if stat.S_ISDIR(prediction_module_stat.st_mode):
            raise Exception("Expected a file but got a directory for arg 'path_to_prediction_module' = '{}'".format(
                path_to_prediction_module))

        file_out = BytesIO()
        with TarFile.open(mode="w:bz2", fileobj=file_out) as tar:
            tar.add(name=path_to_prediction_module, arcname='model.py')

        return file_out 
开发者ID:flipkart-incubator,项目名称:Hunch,代码行数:18,代码来源:hunch_publisher.py

示例6: _get_model_resources_tar_byte_buffer

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def _get_model_resources_tar_byte_buffer(self, path_to_model_resources_dir):
        """
        Returns a byte buffer of a tar file containing the model resources. The tar file is compressed using bz2.
        The topmost folder is named 'model_resource'
        :param path_to_model_resources_dir:  Path to resources directory
        :return: Byte buffer with the tar data
        """
        model_resources_stat = os.stat(path_to_model_resources_dir)
        if not stat.S_ISDIR(model_resources_stat.st_mode):
            raise Exception(
                "Expected a directory for arg 'path_to_model_resources_dir' = {}".format(path_to_model_resources_dir))

        file_out = BytesIO()
        with TarFile.open(mode="w:bz2", fileobj=file_out) as tar:
            tar.add(name=path_to_model_resources_dir, recursive=True, arcname='')

        return file_out 
开发者ID:flipkart-incubator,项目名称:Hunch,代码行数:19,代码来源:hunch_publisher.py

示例7: gettz

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def gettz(name):
    tzinfo = None
    if ZONEINFOFILE:
        for cachedname, tzinfo in CACHE:
            if cachedname == name:
                break
        else:
            tf = TarFile.open(ZONEINFOFILE)
            try:
                zonefile = tf.extractfile(name)
            except KeyError:
                tzinfo = None
            else:
                tzinfo = tzfile(zonefile)
            tf.close()
            CACHE.insert(0, (name, tzinfo))
            del CACHE[CACHESIZE:]
    return tzinfo 
开发者ID:ktraunmueller,项目名称:Computable,代码行数:20,代码来源:__init__.py

示例8: test_workspace_read_only_path

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_workspace_read_only_path(self):
        # Create file where workspace would be, thus preventing the creation
        # of the workspace directory.
        if os.path.exists(self.project.workspace()):
            os.rmdir(self.project.workspace())
        with open(os.path.join(self.project.workspace()), 'w'):
            pass

        with pytest.raises(OSError):     # Ensure that the file is in place.
            os.mkdir(self.project.workspace())

        assert issubclass(WorkspaceError, OSError)

        try:
            logging.disable(logging.ERROR)
            with pytest.raises(WorkspaceError):
                list(self.project.find_jobs())
        finally:
            logging.disable(logging.NOTSET)

        assert not os.path.isdir(self._tmp_wd)
        assert not os.path.isdir(self.project.workspace()) 
开发者ID:glotzerlab,项目名称:signac,代码行数:24,代码来源:test_project.py

示例9: test_corrupted_statepoint_file

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_corrupted_statepoint_file(self):
        job = self.project.open_job(dict(a=0))
        job.init()

        # overwrite state point manifest file
        with open(job.fn(job.FN_MANIFEST), 'w'):
            pass

        self.project._sp_cache.clear()
        self.project._remove_persistent_cache_file()
        try:
            logging.disable(logging.CRITICAL)
            with pytest.raises(JobsCorruptedError):
                self.project.open_job(id=job.id)
        finally:
            logging.disable(logging.NOTSET) 
开发者ID:glotzerlab,项目名称:signac,代码行数:18,代码来源:test_project.py

示例10: test_index

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_index(self):
        docs = list(self.project.index(include_job_document=True))
        assert len(docs) == 0
        docs = list(self.project.index(include_job_document=False))
        assert len(docs) == 0
        statepoints = [{'a': i} for i in range(5)]
        for sp in statepoints:
            self.project.open_job(sp).document['test'] = True
        job_ids = set((job.id for job in self.project.find_jobs()))
        docs = list(self.project.index())
        job_ids_cmp = set((doc['_id'] for doc in docs))
        assert job_ids == job_ids_cmp
        assert len(docs) == len(statepoints)
        for sp in statepoints:
            with self.project.open_job(sp):
                with open('test.txt', 'w'):
                    pass
        docs = list(self.project.index({'.*' + re.escape(os.path.sep) + r'test\.txt': 'TextFile'}))
        assert len(docs) == 2 * len(statepoints)
        assert len(set((doc['_id'] for doc in docs))) == len(docs) 
开发者ID:glotzerlab,项目名称:signac,代码行数:22,代码来源:test_project.py

示例11: test_export_import_tarfile_zipped

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_export_import_tarfile_zipped(self):
        target = os.path.join(self._tmp_dir.name, 'data.tar.gz')
        for i in range(10):
            with self.project.open_job(dict(a=i)) as job:
                os.makedirs(job.fn('sub-dir'))
                with open(job.fn(os.path.join('sub-dir', 'signac_statepoint.json')), 'w') as file:
                    file.write(json.dumps({"foo": 0}))
        with pytest.deprecated_call():
            ids_before_export = list(sorted(self.project.find_job_ids()))
        self.project.export_to(target=target)
        assert len(self.project) == 10
        with TarFile.open(name=target, mode='r:gz') as tarfile:
            for i in range(10):
                assert 'a/{}'.format(i) in tarfile.getnames()
                assert 'a/{}/sub-dir/signac_statepoint.json'.format(i) in tarfile.getnames()
        os.replace(self.project.workspace(), self.project.workspace() + '~')
        assert len(self.project) == 0
        self.project.import_from(origin=target)
        assert len(self.project) == 10
        with pytest.deprecated_call():
            assert ids_before_export == list(sorted(self.project.find_job_ids()))
        for job in self.project:
            assert job.isfile(os.path.join('sub-dir', 'signac_statepoint.json')) 
开发者ID:glotzerlab,项目名称:signac,代码行数:25,代码来源:test_project.py

示例12: test_export_import_zipfile

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def test_export_import_zipfile(self):
        target = os.path.join(self._tmp_dir.name, 'data.zip')
        for i in range(10):
            with self.project.open_job(dict(a=i)) as job:
                os.makedirs(job.fn('sub-dir'))
                with open(job.fn(os.path.join('sub-dir', 'signac_statepoint.json')), 'w') as file:
                    file.write(json.dumps({"foo": 0}))
        with pytest.deprecated_call():
            ids_before_export = list(sorted(self.project.find_job_ids()))
        self.project.export_to(target=target)
        assert len(self.project) == 10
        with ZipFile(target) as zipfile:
            for i in range(10):
                assert 'a/{}/signac_statepoint.json'.format(i) in zipfile.namelist()
                assert 'a/{}/sub-dir/signac_statepoint.json'.format(i) in zipfile.namelist()
        os.replace(self.project.workspace(), self.project.workspace() + '~')
        assert len(self.project) == 0
        self.project.import_from(origin=target)
        assert len(self.project) == 10
        with pytest.deprecated_call():
            assert ids_before_export == list(sorted(self.project.find_job_ids()))
        for job in self.project:
            assert job.isfile(os.path.join('sub-dir', 'signac_statepoint.json')) 
开发者ID:glotzerlab,项目名称:signac,代码行数:25,代码来源:test_project.py

示例13: _add_header

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def _add_header(original, target_file, authors):
    with open(original) as source, open(target_file, 'w') as target:
        target.write(
            '{}\n'
            '{}'.format(
                HEADER.format(
                    basename(original),
                    ', '.join(authors),
                    datetime.now()
                ) if basename(original) != 'Makefile' else '\n'.join('# {}'.format(line) for line in HEADER.format(
                    basename(original),
                    ', '.join(authors),
                    datetime.now()
                ).splitlines()),
                source.read()
            )
        ) 
开发者ID:thejoeejoee,项目名称:VUT-FIT-IFJ-2017-toolkit,代码行数:19,代码来源:release.py

示例14: _extract_file

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def _extract_file(self, fname, extract_dir):
        """
        This method receives an argument for the archive to extract and the
        destination path.
        """
        with ZipFile(fname, "r") as zip_file:
            if self.members is None:
                get_logger().info(
                    "Unzipping contents of '%s' to '%s'", fname, extract_dir
                )
                # Unpack all files from the archive into our new folder
                zip_file.extractall(path=extract_dir)
            else:
                for member in self.members:
                    get_logger().info(
                        "Extracting '%s' from '%s' to '%s'", member, fname, extract_dir
                    )
                    # Extract the data file from within the archive
                    with zip_file.open(member) as data_file:
                        # Save it to our desired file name
                        with open(os.path.join(extract_dir, member), "wb") as output:
                            output.write(data_file.read()) 
开发者ID:fatiando,项目名称:pooch,代码行数:24,代码来源:processors.py

示例15: save

# 需要导入模块: from tarfile import TarFile [as 别名]
# 或者: from tarfile.TarFile import open [as 别名]
def save(self, filename=None, compression=None):
        if filename is None:
            from django.conf import settings
            filename = os.path.join(settings.CACHE_ROOT, 'package.tar')
            if compression is not None:
                filename += '.' + compression

        filemode = 'w'
        if compression is not None:
            filemode += ':' + compression

        with TarFile.open(filename, filemode) as f:
            self._add_bytesio(f, 'bounds', BytesIO(struct.pack('<iiii', *(int(i*100) for i in self.bounds))))

            for level_id, level_data in self.levels.items():
                self._add_geometryindexed(f, 'history_%d' % level_id, level_data.history)
                self._add_geometryindexed(f, 'restrictions_%d' % level_id, level_data.restrictions) 
开发者ID:c3nav,项目名称:c3nav,代码行数:19,代码来源:package.py


注:本文中的tarfile.TarFile.open方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。