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


Python StringIO.read方法代码示例

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


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

示例1: b64pack

# 需要导入模块: from gluon._compat import StringIO [as 别名]
# 或者: from gluon._compat.StringIO import read [as 别名]
 def b64pack(app):
     """
     Given an app's name, return the base64 representation of its packed version.
     """
     folder = apath(app, r=request)
     tmpfile = StringIO()
     tar = tarfile.TarFile(fileobj=tmpfile, mode='w')
     try:
         filenames = listdir(folder, '^[\w\.\-]+$', add_dirs=True, 
                             exclude_content_from=['cache', 'sessions', 'errors'])
         for fname in filenames:
             tar.add(os.path.join(folder, fname), fname, False)
     finally:
         tar.close()
     tmpfile.seek(0)
     gzfile = StringIO()
     w2pfp = gzip.GzipFile(fileobj=gzfile, mode='wb')
     w2pfp.write(tmpfile.read())
     w2pfp.close()
     gzfile.seek(0)
     return base64.b64encode(gzfile.read())
开发者ID:Pac23,项目名称:book2-exercises,代码行数:23,代码来源:pythonanywhere.py

示例2: render

# 需要导入模块: from gluon._compat import StringIO [as 别名]
# 或者: from gluon._compat.StringIO import read [as 别名]
def render(content="hello world",
           stream=None,
           filename=None,
           path=None,
           context={},
           lexers={},
           delimiters=('{{', '}}'),
           writer='response.write'
           ):
    """
    Generic render function

    Args:
        content: default content
        stream: file-like obj to read template from
        filename: where to find template
        path: base path for templates
        context: env
        lexers: custom lexers to use
        delimiters: opening and closing tags
        writer: where to inject the resulting stream

    Example::
        >>> render()
        'hello world'
        >>> render(content='abc')
        'abc'
        >>> render(content="abc'")
        "abc'"
        >>> render(content=''''a"'bc''')
        'a"'bc'
        >>> render(content='a\\nbc')
        'a\\nbc'
        >>> render(content='a"bcd"e')
        'a"bcd"e'
        >>> render(content="'''a\\nc'''")
        "'''a\\nc'''"
        >>> render(content="'''a\\'c'''")
        "'''a\'c'''"
        >>> render(content='{{for i in range(a):}}{{=i}}<br />{{pass}}', context=dict(a=5))
        '0<br />1<br />2<br />3<br />4<br />'
        >>> render(content='{%for i in range(a):%}{%=i%}<br />{%pass%}', context=dict(a=5),delimiters=('{%','%}'))
        '0<br />1<br />2<br />3<br />4<br />'
        >>> render(content="{{='''hello\\nworld'''}}")
        'hello\\nworld'
        >>> render(content='{{for i in range(3):\\n=i\\npass}}')
        '012'

    """
    # here to avoid circular Imports
    try:
        from gluon.globals import Response
    except ImportError:
        # Working standalone. Build a mock Response object.
        Response = DummyResponse

        # Add it to the context so we can use it.
        if 'NOESCAPE' not in context:
            context['NOESCAPE'] = NOESCAPE

    if isinstance(content, unicodeT):
        content = content.encode('utf8')

    # save current response class
    if context and 'response' in context:
        old_response_body = context['response'].body
        context['response'].body = StringIO()
    else:
        old_response_body = None
        context['response'] = Response()

    # If we don't have anything to render, why bother?
    if not content and not stream and not filename:
        raise SyntaxError("Must specify a stream or filename or content")

    # Here for legacy purposes, probably can be reduced to
    # something more simple.
    close_stream = False
    if not stream:
        if filename:
            stream = open(filename, 'rb')
            close_stream = True
        elif content:
            stream = StringIO(to_native(content))

    # Execute the template.
    code = str(TemplateParser(stream.read(
    ), context=context, path=path, lexers=lexers, delimiters=delimiters, writer=writer))

    try:
        exec(code, context)
    except Exception:
        # for i,line in enumerate(code.split('\n')): print i,line
        raise

    if close_stream:
        stream.close()

    # Returned the rendered content.
    text = context['response'].body.getvalue()
#.........这里部分代码省略.........
开发者ID:cccaballero,项目名称:web2py,代码行数:103,代码来源:template.py


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