Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1351417
  • 博文数量: 334
  • 博客积分: 10302
  • 博客等级: 上将
  • 技术积分: 2986
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 10:17
文章分类

全部博文(334)

文章存档

2013年(1)

2012年(9)

2011年(4)

2010年(10)

2009年(24)

2008年(64)

2007年(72)

2006年(150)

我的朋友

分类: Python/Ruby

2007-08-04 13:07:21

断断续续差不多看了一个星期的《简明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()
 
初偿甜头,继续努力学习...
阅读(1198) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~