Python单行文本变多行程序研究

如本文章标有价格,需议价或其它事情商议请加微信pythonxia

"""
   Python单行文本变多行.py
   本程序可以把单行文本变成多行,
   第一个函数是原始版本,如果有英文和中文杂在一起,则每行长度不一样。
   第二个版本single2multitext是改进版,每行大致一样的长度。
"""
def is_chinese(uchar):
        """判断一个unicode是否是汉字"""
        if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
            return True
        else:
            return False

def single2multitext1(line, w, ofile):
    """
    转换单行字符串到多行,w是每行字数。
    ofile是输出文件,这是第一个原始版本,留着以备忘。
    """
    out = open(ofile, "w")
    line = line.rstrip()
    start=0    
    line_length = len(line)           # 字符串总长度

    while line_length - start >= w:
          print(line[start:start+w],file=out)
          start += w
    print(line[start:],file=out)

def single2multitext(line,length):
    """line:字符串,length:每行的字母长度,注意一个汉字占两个位"""
    txtbiao = []
    start = 0
    index = 0
    # w是一个计数器,记录当前行字母数是否超出length
    w = 0                                               
    当前行长度 = 0
    while index < len(line):       
        if is_chinese(line[index]):                      # 如果是中文则占2个位
            w += 2
        else:
            w+=1                                         # 如果是英文则占1个位
        当前行长度 += 1
        if w>= length:
            txtbiao.append(line[start:start+当前行长度]) # 当前行长度是动态的。
            start += 当前行长度
            w = 0
            当前行长度 = 0
        index += 1
    txtbiao.append(line[start:])
    return txtbiao
    
s = """测试的文本China JiangXi anyuan dist江西省萍乡市安源区有一个Python专家叫李兴球。李兴球博客www.lixingqiu.com,上面记录了很多研究成果。这就是其中之一,转载此篇文章请注意来自李兴球博客。Python创意编程专家微信公众号: 李兴球Python。回复coloradd即可获取Python创意编程教程。wechat不是QQ,wechat is not qq今天是五一劳动节。"""
b = single2multitext(s,30)

##out = open('c:/t2.txt', "w")
##print(b,file=out)
##out.close()

for line in b:
    print(line)
本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » Python单行文本变多行程序研究
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页