免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5030 | 回复: 18
打印 上一主题 下一主题

求助:如何给文本加序号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-26 14:43 |只看该作者 |倒序浏览
在论坛里求助了几次,大家都很热情。只是我的学习进度很慢,工作需要,又得求助大家了:


一个客户信息的文本文件,每个客户以等号行 (=============这个样子的64个“=”分割)

请教:如何把”===========“替换成"==== 序号 ====="

谢谢。

[ 本帖最后由 nickleeh 于 2008-8-26 14:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-26 14:48 |只看该作者
序号是指从1开始的数列吧?
序号左右两边各32个等号?

论坛徽章:
0
3 [报告]
发表于 2008-08-26 14:49 |只看该作者
序号是记录号吗,加了之后要求留多少个等号?

论坛徽章:
0
4 [报告]
发表于 2008-08-26 14:56 |只看该作者
原帖由 jjj137 于 2008-8-26 14:48 发表
序号是指从1开始的数列吧?
序号左右两边各32个等号?


对。序号从1开始,两面个32个等号。最好序号左右各有一个空格,这样可读性好一些。

非常感谢。

论坛徽章:
0
5 [报告]
发表于 2008-08-26 15:09 |只看该作者

  1. #!/usr/bin/env python


  2. s, r, w = '='*32, file('data'), file('newdata','w')
  3. ss=s+' %d '+s+'\n'
  4. s=s+s

  5. j=1

  6. for i in r:
  7.     if s in i:
  8.         w.write(ss %  j)
  9.         j+=1
  10.     else:
  11.         w.write(i)
复制代码


将就用吧。

论坛徽章:
0
6 [报告]
发表于 2008-08-26 15:19 |只看该作者
原帖由 retuor 于 2008-8-26 15:09 发表

#!/usr/bin/env python


s, r, w = '='*32, file('data'), file('newdata','w')
ss=s+' %d '+s+'\n'
s=s+s

j=1

for i in r:
    if s in i:
        w.write(ss %  j)
        j+=1
    else ...



多谢!顺利完成添加序号操作。

看起来Python可以帮助我们完成很多任务,很实用。要赶紧学习Python。

论坛徽章:
0
7 [报告]
发表于 2008-08-26 15:21 |只看该作者
改一改,效率高一点点:


  1. #!/usr/bin/env python


  2. s, r, w = '='*32, file('data'), file('newdata','w')
  3. ss=s+' %d '+s+'\n'
  4. s=s+s

  5. j=1

  6. for i in r:
  7.     if s==i[0:64]:
  8.         w.write(ss %  j)
  9.         j+=1
  10.     else:
  11.         w.write(i)
复制代码


python 是好东西。:wink:

论坛徽章:
0
8 [报告]
发表于 2008-08-26 15:31 |只看该作者
原帖由 retuor 于 2008-8-26 15:21 发表
改一改,效率高一点点:


#!/usr/bin/env python


s, r, w = '='*32, file('data'), file('newdata','w')
ss=s+' %d '+s+'\n'
s=s+s

j=1

for i in r:
    if s==i[0:64]:
        w.write(ss ...



这个也好用。资料条数越多提高效率应该越明显。


楼上辛苦了! Thanks!

论坛徽章:
0
9 [报告]
发表于 2008-08-26 15:35 |只看该作者
原帖由 retuor 于 2008-8-26 15:21 发表
改一改,效率高一点点:


#!/usr/bin/env python


s, r, w = '='*32, file('data'), file('newdata','w')
ss=s+' %d '+s+'\n'
s=s+s

j=1

for i in r:
    if s==i[0:64]:
        w.write(ss ...

这个效率更高么?我还以为产生一个新列表比查找时间长……

论坛徽章:
0
10 [报告]
发表于 2008-08-26 15:47 |只看该作者
原帖由 jjj137 于 2008-8-26 15:35 发表

这个效率更高么?我还以为产生一个新列表比查找时间长……


你说得对。这样做很可能更慢了。特别是在其它行都不长时。

也许我们不用跟 64 这么长的段进行比较,只要判断前 4 到 5 个是否等号就行。这要看楼主的文件结构。

[ 本帖最后由 retuor 于 2008-8-26 15:49 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP