免费注册 查看新帖 |

Chinaunix

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

小试python [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-04 13:07 |只看该作者 |倒序浏览
断断续续差不多看了一个星期的《简明python教程》,也算Python稍有了了解。

手头上刚好碰到了件棘手的事,从AIX Informix上导出的数据,在PC上重新导入的数据总是要出错。由于数据源要100多万条记录,依靠手工去修改数据源来解决错误已经成为不可能了。事实上在这100多万条记录中仅有9W多是我真正所需要的,或许有朋友会说为什么不在数据导出的时候就直接把记录select到这9W呢?我也想啊,可是后台是统一的,不可能因为我这个需要而去改动,至少目前就是这样。虽然很笨拙,但是还得用

。所以,解决问题的办法还是归结到了客户端。
原本采用的是用split把文件分割成n个小文件片,然后逐个导入,碰到错误就手工编辑文件删除出错记录,费时又费力。这次刚好让Python也来个学以致用。原本想可能会碰到经较多的问题,但Python的确让人很惊喜,相当简单的几行代码就让我搞定了这个问题,通过python来读取数据源,删除无用记录,同时也缩无用减字段。运行速度也还可以,几分钟就搞定了原来用半天时间的事,心里那个痛快啊


fi=file("xx.dat")
fo=file("new_xx.dat","w")
while True
      s=fi.readline()
      sl=s.splie("|")
      ns=[]
      if len(s) == 0
         break
      if len(sl) != x
         continue
      ns.append(sl[0])
      ns.append(sl[1])
      ns.append(sl[2])
      ...
      "|".join(ns)
      ns="|"+ns
      fo.write(ns)
fi.close()
fo.close()

初偿甜头,继续努力学习...

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12056/showart_353587.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP