Chinaunix首页 | 论坛 | 博客
  • 博客访问: 907882
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2012-12-06 22:36:00

某网友的一个问题,想用awk对一个文件进行处理,可是没有思路 
Release  SPA          Problem   owner
289      DROUTER   cr_123    jiji
2810     DROUTER   cr_1234    qiqi
289      EPAY        cr_234    zhaon
289      DROUTER   cr_12345   qiqi


结果 :
Release : 289
SPA: DROUTER
cr_123    jiji
cr_234    zhaon
SPA:EPAY
cr_12345   qiqi
Release: 2810 
SPA:DROUTER
cr_1234    qiqi
 
下面的是我的python的代码

  1. #!/usr/bin/python
  2. FD = open("/root/data","r")
  3. R = {}
  4. firline = FD.readline()

  5. for line in FD.readlines():
  6.     tmp=line.split()
  7.     if tmp[0] in R:
  8.         if tmp[1] in R[tmp[0]]:
  9.             R[tmp[0]][tmp[1]][tmp[3]]=tmp[2]
  10.         else :
  11.             R[tmp[0]][tmp[1]]={}
  12.             R[tmp[0]][tmp[1]][tmp[3]]=tmp[2]
  13.     else:
  14.         R[tmp[0]]={}
  15.         R[tmp[0]][tmp[1]]={}
  16.         R[tmp[0]][tmp[1]][tmp[3]]=tmp[2]

  17. for release in R.keys():
  18.     print "Release: " + release
  19.     for spa in R[release].keys():
  20.         print "\tSPA: " + spa
  21.         for own in R[release][spa].keys():
  22.             print "\t\t" + R[release][spa][own] + "\t" + own

阅读(1726) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~