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)
浙公网安备 33010602011771号