當前位置: 首頁>>代碼示例>>Python>>正文


Python mimetypes.guess_all_extensions方法代碼示例

本文整理匯總了Python中mimetypes.guess_all_extensions方法的典型用法代碼示例。如果您正苦於以下問題:Python mimetypes.guess_all_extensions方法的具體用法?Python mimetypes.guess_all_extensions怎麽用?Python mimetypes.guess_all_extensions使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在mimetypes的用法示例。


在下文中一共展示了mimetypes.guess_all_extensions方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: getFileExtensions

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def getFileExtensions(mime):
    if(not mimetypes.inited):
        mimetypes.init()
        initKnowMimetypes()

    types = mime.split(";")

    result = []

    for t in types:
        if(t):
            res = mimetypes.guess_all_extensions(t)
            #print("getting extensions for mime " + str(t) + " " + str(res))
            result.extend(res)

    if(len(result) == 0):
        result.append(".*")
        
    return result 
開發者ID:JackD83,項目名稱:PyMenu,代碼行數:21,代碼來源:OPKHelper.py

示例2: _relay_msg_image

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def _relay_msg_image(self, msg, conv_id):
        filename = os.path.basename(msg.file)
        logger.info("Uploading Slack image '{}' to Hangouts - {}".format(filename, json.dumps(msg.file)))
        for retry_count in range(3):
            try:
                logger.debug("Attempt {} at downloading file".format(retry_count+1))
                # Retrieve the image content from Slack.
                resp = yield from Base.slacks[self.team].get(msg.file)
                name_ext = "." + filename.rsplit(".", 1).pop().lower()
                # Check the file extension matches the MIME type.
                mime_type = resp.content_type
                mime_exts = mimetypes.guess_all_extensions(mime_type)
                if name_ext.lower() not in [ext.lower() for ext in mime_exts]:
                    raise ValueError("MIME '{}' does not match extension '{}', we probably didn't get the right file." +
                                     " Attempt [{}/3]"
                                     .format(mime_type, name_ext, retry_count+1))
                image = yield from resp.read()
                image_id = yield from self.bot._client.upload_image(BytesIO(image), filename=filename)
                yield from self._relay_msg(msg, conv_id, image_id)
                break
            except ValueError as err:
                logger.error(err)
                yield from asyncio.sleep(2) 
開發者ID:hangoutsbot,項目名稱:hangoutsbot,代碼行數:25,代碼來源:bridge.py

示例3: get_extension

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def get_extension(self, response):
        mtype = response.headers.get("Content-Type", "image/jpeg")
        mtype = mtype.partition(";")[0]

        if "/" not in mtype:
            mtype = "image/" + mtype

        if mtype in MIMETYPE_MAP:
            return MIMETYPE_MAP[mtype]

        exts = mimetypes.guess_all_extensions(mtype, strict=False)
        if exts:
            exts.sort()
            return exts[-1][1:]

        self.log.warning(
            "No filename extension found for MIME type '%s'", mtype)
        return "txt" 
開發者ID:mikf,項目名稱:gallery-dl,代碼行數:20,代碼來源:http.py

示例4: from_field

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def from_field(cls, file_field, *, user, connection=None):
        name = file_field.name
        exts = mimetypes.guess_all_extensions(file_field.content_type)
        for ext in exts:
            if name.endswith(ext):
                break
        else:
            if exts:
                name += exts[-1]
        name = await cls.app.loop.run_in_executor(
            None, image_storage.save, name, file_field.file)
        image_uuid = image_storage.uuid(name)
        return await cls.create(
            uuid=image_uuid,
            image=name,
            mime_type=file_field.content_type,
            created_at=utils.now(),
            author_id=user.pk,
            connection=connection
        ) 
開發者ID:dvhb,項目名稱:dvhb-hybrid,代碼行數:22,代碼來源:amodels.py

示例5: _check_mimetype

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def _check_mimetype(self):
        """
        Compare mimetype (as determined by libmagic) to extension.

        Determine whether the extension that are normally associated with
        the mimetype include the file's actual extension.
        """
        if not self.has_mimetype:
            self.make_dangerous('File has no mimetype')
        else:
            if self.mimetype in Config.aliases:
                mimetype = Config.aliases[self.mimetype]
            else:
                mimetype = self.mimetype
            expected_extensions = mimetypes.guess_all_extensions(mimetype,
                                                                 strict=False)
            if mimetype in Config.aliases:
                expected_extensions += mimetypes.guess_all_extensions(Config.aliases[mimetype], strict=False)
            if expected_extensions:
                if self.has_extension and self.extension not in expected_extensions:
                    self.make_dangerous('Extension does not match expected extensions ({}) for this mimetype'.format(expected_extensions)) 
開發者ID:CIRCL,項目名稱:PyCIRCLean,代碼行數:23,代碼來源:filecheck.py

示例6: _get_tikaresults

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def _get_tikaresults(results, fname):
    # Tika mime type is under Content-Type key.
    # Take the content type and make a guess of the
    # mimetype using python's built in mimetypes lib.
    tikadict = dict(results)
    try:
        content_types = tikadict.get(fname, {}).get('Content-Type')

        if not isinstance(content_types, list):
            content_types = [content_types]

        tika_extensions = []
        for ctype in content_types:
            tika_extensions += mimetypes.guess_all_extensions(ctype)

        return list(set(tika_extensions))

    except AttributeError:
        return [] 
開發者ID:mitre,項目名稱:multiscanner,代碼行數:21,代碼來源:fileextensions.py

示例7: get_filter

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def get_filter(cls, mimetype):
        """
        Returns a filter string for the file dialog. The filter is based
        on the mime type.

        :param mimetype: path from which the filter must be derived.
        :return: Filter string
        """
        filters = ' '.join(
            ['*%s' % ext for ext in mimetypes.guess_all_extensions(mimetype)])
        return '%s (%s)' % (mimetype, filters) 
開發者ID:TuringApp,項目名稱:Turing,代碼行數:13,代碼來源:splittable_tab_widget.py

示例8: from_url

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def from_url(cls, url, *, user, connection=None):
        async with client.ClientSession() as session:
            async with session.get(url) as response:
                if response.status != 200:
                    return
                l = response.content_length
                if not l or l > 2 ** 23:
                    return
                content_type = response.content_type
                if not content_type.startswith('image'):
                    return
                content = BytesIO(await response.read())
                filename = response.url.name
        exts = mimetypes.guess_all_extensions(content_type)
        for ext in exts:
            if filename.endswith(ext):
                break
        else:
            if exts:
                filename += exts[-1]
        name = await cls.app.loop.run_in_executor(
            None, image_storage.save, filename, content)
        image_uuid = image_storage.uuid(name)
        return await cls.create(
            uuid=image_uuid,
            image=name,
            mime_type=content_type,
            created_at=utils.now(),
            author_id=user.pk,
            connection=connection
        ) 
開發者ID:dvhb,項目名稱:dvhb-hybrid,代碼行數:33,代碼來源:amodels.py

示例9: __init__

# 需要導入模塊: import mimetypes [as 別名]
# 或者: from mimetypes import guess_all_extensions [as 別名]
def __init__(self, src_path, dst_path):
        ''' Init file object, set the mimetype '''
        super(File, self).__init__(src_path, dst_path)

        self.is_recursive = False
        if not self.has_mimetype():
            # No mimetype, should not happen.
            self.make_dangerous()

        if self.is_dangerous():
            return

        self.log_details.update({'maintype': self.main_type,
                                 'subtype': self.sub_type,
                                 'extension': self.extension})

        # If the mimetype matches as text/*, it will be sent to LibreOffice, no need to cross check the mime/ext
        if self.main_type == 'text':
            return

        # Check correlation known extension => actual mime type
        if propertype.get(self.extension) is not None:
            expected_mimetype = propertype.get(self.extension)
        else:
            expected_mimetype, encoding = mimetypes.guess_type(self.src_path, strict=False)
            if aliases.get(expected_mimetype) is not None:
                expected_mimetype = aliases.get(expected_mimetype)

        is_known_extension = self.extension in mimetypes.types_map.keys()
        if is_known_extension and expected_mimetype != self.mimetype:
            self.log_details.update({'expected_mimetype': expected_mimetype})
            self.make_dangerous()

        # check correlation actual mime type => known extensions
        if aliases.get(self.mimetype) is not None:
            mimetype = aliases.get(self.mimetype)
        else:
            mimetype = self.mimetype
        expected_extensions = mimetypes.guess_all_extensions(mimetype, strict=False)
        if expected_extensions:
            if len(self.extension) > 0 and self.extension not in expected_extensions:
                self.log_details.update({'expected_extensions': expected_extensions})
                self.make_dangerous()
        else:
            # there are no known extensions associated to this mimetype.
            pass 
開發者ID:CIRCL,項目名稱:PyCIRCLean,代碼行數:48,代碼來源:generic.py


注:本文中的mimetypes.guess_all_extensions方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。