001_015 Python 扩展和压缩制表符即将制表符替换为一定数目的空格或者相反

代码如下:

#encoding=utf-8
print '中国'

#制表符转化为空格

str='1\t2\n中\t国'
ustr=u'中\t国'
print str.expandtabs()
print ustr.expandtabs(4)

#空格转化为制表符 需求较少 处理单行字符串
import re #正则表达式  将空格给位空格加tab 其中将'a'应该'\t','b'应该为' ',便于观察进行了改动
def unexpand(astring, tablen=8):
    pieces = re.split(r'( +)',astring.expandtabs())
    lensofar=0 #字符串长度
    for i ,piece in enumerate(pieces):
        thislen=len(piece)
        lensofar += thislen
        if piece.isspace():
            numblanks = lensofar % tablen
            numtabs = (thislen - numblanks + tablen -1)/tablen
            pieces[i] ='a'*numtabs+'b'*numblanks
    return ''.join(pieces)

str='1        2        3'
print unexpand(str)

打印结果如下:

中国
1       2
中     国
中   国
1ab2abb3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书山登峰人

精品不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值