python文字处理

处理来自农业部微生物肥料质量检测中心(http://www.biofertilizer95.cn)的所有登记的微生物肥料,利用浏览器开发者工具获得原始文件=1468588156507”>http://www.biofertilizer95.cn/res/zsproduct.txt?=1468588156507
win10,python3.5,没有做函数封装。
import re
with open(‘1.txt’,’r’) as f1:
l=f1.read()
l1 = l.replace(r’\n’, ”) #原始文件中含有\n字符,先去掉
s1=re.findall(r’[“\w.*?号”]’,l1)
l2=[]
for i in range(0,len(s1)):
x=s1[i].split(‘,’)
l2.append(x) #l2为原始数据格式化处理
if l2[i][5]==’液体’:
print(l2[i])

dict={}
for i in range(0,len(l2)):
    if l2[i][1] not in dict:
        dict[l2[i][1]]=l2[i][5]
    else:
        dict[l2[i][1]]=dict[l2[i][1]]+l2[i][5]              #dict为每个厂家的名称及其使用的每种肥料中的微生物种类名称

dict2={}
dict3={}
dict4={}
l3=[]
for key,value in dict.items():
    k=key.strip('"')
    v2=int(value.count('"')/2)
    dict2[k]=v2            #dict2为每个厂家登记生产的微生物肥料种数
    m=value.replace('"',' ').replace('、',' ')
    n=m.split()
    v3=set(n)
    dict3[k]=v3           #dict3为每个厂家使用的微生物种类名称
    for i in range(0,len(n)):
        l3.append(n[i])    #每种微生物在肥料中出现一次,其在l3列表中就增加一次
for word in l3:
    if word not in dict4:
        dict4[word]=1
    else:
        dict4[word]=dict4[word]+1          #dict4包含了每种微生物在所有登记肥料中出现的次数
print('\n登记微生物种数为',len(dict4),'种')
print('微生物肥料生产厂家为',len(dict3),'个')
print('微生物肥料产品总数为',len(l2),'个')

import xlwt
workbook=xlwt.Workbook(encoding=’ascii’)
worksheet4=workbook.add_sheet(‘microbe’)
i=0
for key,value in dict4.items():
worksheet4.write(i,0,key)
worksheet4.write(i,1,value)
i=i+1
worksheet2=workbook.add_sheet(‘company’)
i=0
for key,value in dict2.items():
worksheet2.write(i,0,key)
worksheet2.write(i,1,value)
i=i+1
worksheet3=workbook.add_sheet(‘company-microbe’)
i=0
for key,value in dict3.items():
worksheet3.write(i,0,key)
l=[]
for item in value:
l.append(item)
worksheet3.write(i,1,’、’.join(l))
i=i+1
workbook.save(‘microbe.xls’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值