免费注册 查看新帖 |

Chinaunix

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

Python应用:文件内容分析:纵向组合列表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-25 10:02 |只看该作者 |倒序浏览

                                这是上周四没发成功的帖子。
    现在工作的东西需要把策划文档中的Excel内容按列形成数组。考虑到有几个像这样的独立部分,并且以后修改的可能性也很大,正好可以用Python来方便地完成这个任务。
举个例子,比如:原来的文件是从Excel拷贝出来存为 parseWordGroup.txt,内容:
鹅 毛 河
南 方 鸡
江 南 人
青 草 鹅
青 色 方
红 花 子
花 草 色
则会生成result.txt:
c1Array = ["鹅","南","江","青","青","红","花"]
c2Array = ["毛","方","南","草","色","花","草"]
w0Array = ["河","鸡","人","鹅","方","子","色"]以下是程序源码,各位路过如果有空,请您留个改进意见啥的哦

。 [color="#008080"]# colsToArrays.py[color="#008080"]# encoding:gb2312[color="#0000ff"]import [color="#800000"]re[color="#0000ff"]import [color="#800000"]types[color="#008080"]# 数据文件[color="#000000"]sFrom[color="#00c600"]=[color="#ff00ff"]'parseWordGroup.txt'[color="#000000"]sResult[color="#00c600"]=[color="#ff00ff"]'result.txt'[color="#008080"]# 列数[color="#000000"]iCol[color="#00c600"]=[color="#000000"]3[color="#008080"]# 建立目标数组[color="#000000"]aProduce[color="#00c600"]=[color="#000000"][][color="#0000ff"]for [color="#000000"]i [color="#0000ff"]in [color="#808000"]range[color="#000000"](0,iCol):        [color="#000000"]aProduce[color="#00c600"].[color="#808000"]append[color="#000000"]([])[color="#0000ff"]print [color="#808000"]len[color="#000000"](aProduce)[color="#008080"]# 文件读打开[color="#000000"]fFrom[color="#00c600"]=[color="#808000"]file[color="#000000"](sFrom,[color="#ff00ff"]'r'[color="#000000"])[color="#008080"]# 析出分行列表[color="#000000"]aFrom[color="#00c600"]=[color="#000000"]fFrom[color="#00c600"].[color="#808000"]readlines[color="#000000"]()[color="#000000"]nLine[color="#00c600"]=-[color="#000000"]1[color="#008080"]# 分别取出对应的数组[color="#0000ff"]for [color="#000000"]l [color="#0000ff"]in [color="#000000"]aFrom:        [color="#00c600"]++[color="#000000"]nLine        [color="#000000"]m[color="#00c600"]=[color="#800000"]re[color="#00c600"].[color="#808000"]search[color="#000000"]([color="#ff00ff"]'\s*'[color="#00c600"].[color="#808000"]join[color="#000000"]([[color="#ff00ff"]'(\S\S)'[color="#000000"]][color="#00c600"]*[color="#000000"]3),l)        [color="#0000ff"]if [color="#808000"]type[color="#000000"](m)![color="#00c600"]=[color="#800000"]types[color="#00c600"].NoneType[color="#000000"]: [color="#008080"]# 可以匹配                [color="#0000ff"]for [color="#000000"]i [color="#0000ff"]in [color="#808000"]range[color="#000000"](0,iCol):                [color="#000000"]aProduce[color="#00c600"].[color="#808000"]append[color="#000000"](m[color="#00c600"].[color="#808000"]group[color="#000000"](i[color="#00c600"]+[color="#000000"]1))[color="#008080"]# 对目标数组取标识名[color="#0000ff"]def [color="#000000"]getTgtAryId(i):[color="#0000ff"]if [color="#000000"]i[color="#00c600"]        [color="#0000ff"]return [color="#ff00ff"]"c"[color="#00c600"]+[color="#808000"]str[color="#000000"](i[color="#00c600"]+[color="#000000"]1)[color="#0000ff"]else[color="#000000"]:        [color="#0000ff"]return [color="#ff00ff"]"w"[color="#00c600"]+[color="#808000"]str[color="#000000"](i[color="#00c600"]-[color="#000000"]2)[color="#008080"]# 将结果写入文件[color="#000000"]fRs[color="#00c600"]=[color="#808000"]file[color="#000000"](sResult,[color="#ff00ff"]'w'[color="#000000"])[color="#0000ff"]for [color="#000000"]i [color="#0000ff"]in [color="#808000"]range[color="#000000"](0,iCol):        [color="#000000"]sLine[color="#00c600"]=[color="#000000"]getTgtAryId(i)[color="#00c600"]+[color="#ff00ff"]'Array = ["'[color="#000000"]\        [color="#00c600"]+[color="#ff00ff"]'","'[color="#00c600"].[color="#808000"]join[color="#000000"](aProduce)[color="#00c600"]+[color="#ff00ff"]'"]'        [color="#000000"]fRs[color="#00c600"].[color="#808000"]write[color="#000000"](sLine[color="#00c600"]+[color="#ff00ff"]'\n'[color="#000000"])[color="#000000"]fRs[color="#00c600"].[color="#808000"]close[color="#000000"]()
               
               
               
               

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP