# good.py
```python
import re
def openfile():
f='shopping.csv'
txt=open(f)
return txt
def readtxt(txt):
key=txt.read()
return key
def BacklineArray():
for i in range(0,1,1):
txt=openfile()
key=readtxt(txt)
line=key.split('n')
#print(line)
return line
def dData(line):
d=[]
print(line[0])
sdata=line[0].split(',')
#print(sdata)
for i in range(1,20341,1):
data=line[i].split(',')
d.insert(i,data)
return d
def getp(d):
P=[]
for i in range(0,20340,1):
datav=clean(d[i][1])
P.insert(i,int(datav))
return P
def getd(d):
D=[]
for i in range(0,20340,1):
datav=clean(d[i][0])
D.insert(i,int(datav))
return D
def getc(d):
C=[]
for i in range(0,20340,1):
C.insert(i,int(d[i][2]))
return C
def sorting(d):
data=sorted(d,key=lambda x:x[1])
return data
def sortd(d):
data=sorted(d,key=lambda x:x[0])
return data
def clean(s):
dx = re.sub('[a-zA-Z’!"#$%&'()*+,-.2<=>?@,。?★、…【】《》?“”‘’![\]^_`{|}~s]+', "", s)
# 去除不可见字符
da= re.sub('[ 01 02 03 04 05 06 07x08x09x0ax0bx0cx0dx0ex0fx10x11x12x13x14x15x16x17x18x19x1a]+', '', dx)
return da
def pD(d):
pD= [[0 for i in range(1960)] for j in range(923)]
for i in range(0,20340,1):
x=getd(d)[i]
y=getp(d)[i]
pD[x][y]=getc(d)[i]
print(pD[1][128])
return pD
def dy(d):
for i in range(1,20340):
print(getd(d)[i],getp(d)[i],getc(d)[i])
def countp(data):
Cp=[]
c=getc(data)[0]
k=0
for i in range(0,20340,1):
#print("物品"+str(getp(data)[i])+"订单"+str(getd(data)[i])+"数量"+str(getc(data)[i]))
#g.write(str(getp(data)[i])+','+str(getd(data)[i])+','+str(getc(data)[i])+'n')
if getp(data)[i]!=getp(data)[i+1]:
k+=1
Cp.insert(k,c)
#print(Cp)
#print("总数"+str(c)+'n')
#write("物品"+str(getp(data)[i])+" "+str(c)+'n')
c=getc(data)[i+1]
else:
c+=getc(data)[i+1]
return Cp
def countd(data):
Cd=[]
c=0
k=0
for i in range(0,20340,1):
if getd(data)[i]!=getd(data)[i+1]:
int(k)
k+=1
Cd.insert(k,c)
print(Cd)
#print("商品类数"+str(c)+'n')
write("订单"+str(k)+" "+str(c)+'n')
c=1
else:
c+=1
return Cd
def write(d):
f1='./pnum1.txt'
txt1=open(f1,"a")
for i in range(0,1,1):
txt1.write("".join(d))
```
# main.py
```python
import goods as g
if __name__ == '__main__':
sline=g.BacklineArray()
data=g.dData(sline)
Cd=g.countd(data)
g.write(str(Cd))
data=g.sorting(data)
Cp=g.countp(data)
g.write(str(Cd))
```
main.py
```python
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
import numpy as np
import re
#plt.rcParams["font.sans-serif"]='./msyh.ttf'
f_name = font_manager.FontProperties(fname='./msyh.ttf').get_name()
rc('font', family=f_name)
#plt.rcParams['axes.unicode_minus']=False
x =[]
y =[]
f='./pnum.txt'
p=open(f).read()
#print(p)
str=r" d+"
n=re.findall(str,p)
print(n)
for i in range(0,1942,1):
x.insert(i,i)
y.insert(i-1,int(n[i-1]))
print(x,y)
x=np.array(x)
y=np.array(y)
#plt.scatter(x, y,color='hotpink')
plt.bar(x, y,width=2,color='blue')
for a,b in zip(x,y):
plt.text(a,b,b,ha="center",va="bottom",fontsize=7)#添加数据标签
#x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
#y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
#plt.scatter(x, y, color = '#88c999')
plt.ylabel("count", color='blue')
plt.xlabel('pclass')
plt.title('1……ncount(p)')
plt.show()
#plt.savefig('./sdt7.png')
```



