今天开发了一个wraptext模块,它可以对文本进行折行处理。详情:

 说明
    本程序用来进行文本的折行处理,支持中文和英文,可以处理Unicode和普通字符串

 参数说明
    text       待处理的文本,可以是unicode或str
    width      处理宽度
    encoding   字符串编码,只当text不是unicode时有效
    cr         换行符,如果为None则自动从文本中判断,自动设定为找到的第一个换
               行符,如果找不到缺省为’\n’,如果不为None,则使用设定的换行符
    indent     非首行缩近量
    firstindent首行缩近量
    skipchar   行首忽略字符,如果存在则在处理前会清除每前开始前有skipchar的文本

 功能描述
  1.支持unicode和非unicode文本,如果为非unicode文本,则会使用encoding指定的编
    码对文本转换为unicode,在返回时,会根据原文本是unicode还是非unicode进行转
    换并输出。
  2.支持段落概念。两个以上连续的回车为段落分隔,其中如果一行只包括空白(空格或
    制表符的行)将视为空行。最终的结果段落间只保存一个空行。如果只存在单个换行
    则相邻的行视为同一段落。支持’\n’, ‘\r\n’, ‘\r’三种形式的换行符。可以自动
    使用文本中的回车符或指定转换后的回车符。
  3.自动处理亚洲文字和半角字符,自动处理空白,多个空白(包括制表符)将自动合并
    成一个。亚洲文字和英文之间以空格分隔。对于亚洲文字中间的空白自动删除。
  4.支持缩近设置,首行缩近和非首行缩近。缩近量可以是数值,则为空格*数值,可以
    是字符串。如果firstindent没有设置将缺省为indent的值。
  5.可以设置每行行首要忽略的字符,如注释行的’#',在处理时将先删除匹配的行首字
    符。

 示例
  msg = ”’中文 中文hello, world”’
  wraptext(msg, 10)

现在代码放在 http://code.google.com/p/pyzh 中。原来它已经有一个模块,不过不满足我的要求,于是自已重新写了一个。


5条评论

  1. 你好,站内信发不出。刚接触django

    用户部分用的auth ,base.html模板框架中放入

    {% if not request.user.is_authenticated %}

    你好,请 <a href=/login>登录</a> 或 <a href=/register>注册</a>{{request.user.username}}45

    {% else %}

    {{request.user.username}}

    {% endif %}

    为什么有的页面好用,有的页面没有效果呢

  2. 应该是只有使用了RequestContext的才有效,看一看是不是都用的它来传递变量。

  3. 非常感谢

    要把request送到模板中去

  4. 出现错误找不到模板,

    xp下用manage.py和apache mod_python 启动均正常

    linux下mod_python下也正常

    但在freebsd下就报下面的错误,那个文件确实存在而且用777的属性,死活说找不到模板文件,帮忙分析下。

    Using loader django.template.loaders.filesystem.load_template_source:

    * /usr/www/fiction/templates/book.html (File does not exist)

  5. 如果你还在用Python:请速与我联系

    qiaoliang0222@163.com

    QQ:

    158698840

    有个想法要与你商量