处理来自农业部微生物肥料质量检测中心(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’)