Python Cookbook学习记录 ch1_15_2013/10/25

1.15扩展和压缩制表符

tab和空格的互转,一般是tab转空格,一个expandtabs()就足够了,空格转tab可能只出在考试题中

s = "a\t aaaaa\t         aaaa"  
s1 = s.expandtabs()  
print s,len(s)     
print s1,len(s1) 
#把空格转成tab   
def unexpand(s,tablen = 8):  
    import re  
    #切分成空格和非空格   
    pieces = re.split(r'( +)',s.expandtabs())  
    #记录当前字符串总长度   
    lensofar = 0  
    for i,piece in enumerate(pieces):  
        thislen = len(piece)  
        lensofar += thislen  
        if piece.isspace():  
            #把每个空格序列改成tab+spaces   
            numtabs = (thislen-numblanks+tablen-1)/tablen  
            print numblanks,numtabs  
            pieces[i]='\t'*numtabs +' '*numblanks  
    return ''.join(pieces)  
  
s2 = unexpand(s1)  
print s1,len(s1)  
print s2,len(s2)

 

 

posted on 2013-10-25 21:08  七海之风  阅读(125)  评论(0)    收藏  举报

导航