Coi统计数据程序
更多操作
import os
import os.path
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
def replaceList(list1, num, replace):
list2 =[]
for i in range(len(list1)):
if i == num:
list2.append(replace)
else:
list2.append(list1[i])
return list2
def part(num,list1):
for i in range(len(list1)):
if num<=list1[i]:
return i
break
root="/Users/zhuozhiyongde/Desktop/"
print("——Welcome!欢迎来到RCB援建数据统计系统,by Arthals——")
data=open(str(root+"coi.txt"),"r")
coi=[]
all_coi_name=[]
all_coi_value=[]
count=[]
all_coi={}
tag=[]
for line in data:
coi.append(str(line))
for i in range(len(coi)):
line=coi[i]
if line[40:54]=="* Arthals 统计结束":
break
if line[40:53]=="* Arthals 统计:":
tag.append(line[53:].rstrip("\n"))
print("————Now",line[50:].rstrip("\n"),"————")
coi2=[]
how={}
for l in range(i+1,len(coi)):
if coi[l][40:52]=="* Arthals 统计":
break
else:
t_f = is_number(coi[l][41])
if t_f == True:
linex=coi[l][40:]
linex_list=linex.split(" ")
time=float(linex_list[0].rstrip("/h"))
if time<=410:
linex_list.remove("ago")
linex_list.remove("-")
linex_list.remove("red_shulker_box.\n")
if linex_list[3]=="x54":
continue
if linex_list[2]=="removed":
if linex_list[1] in how:
how[linex_list[1]]=how[linex_list[1]]-int(linex_list[3].lstrip("x"))
elif linex_list[1] not in how:
how[linex_list[1]]=-int(linex_list[3].lstrip("x"))
else:
print("Error")
break
if linex_list[2]=="added":
if linex_list[1] in how:
how[linex_list[1]]=how[linex_list[1]]+int(linex_list[3].lstrip("x"))
elif linex_list[1] not in how:
how[linex_list[1]]=int(linex_list[3].lstrip("x"))
else:
print("Error")
break
name=list(how.keys())
count.append(len(name)+1)
for y in range(len(name)):
all_coi_name.append(name[y])
value=list(how.values())
for y in range(len(value)):
all_coi_value.append(value[y])
sort=[]
for i in range(len(all_coi_name)):
if all_coi_name[i] in sort:
continue
else:
sort.append(all_coi_name[i])
sort.sort()
all_count=[]
for i in range(len(count)):
if i==0:
all_count.append(count[i])
else:
all_count.append("0")
all_count=replaceList(all_count,i,int(count[i]+all_count[i-1]))
all_count_change=[]
for i in range(len(all_count)):
all_count_change.append(int(all_count[i]-1))
all_count=all_count_change
bt=[]
for i in range(len(tag)+2):
if i==0:
bt.append("ID\t")
elif i != len(tag)+1:
bt.append(str(tag[i-1])+"\t")
else:
bt.append(str("\n"))
'''
del_count=[]
for i in range(len(all_coi_value)):
if all_coi_value[i]==0:
del_count.append(i)
for i in range(len(del_count)):
del all_coi_value[i]
del all_coi_name[i]
'''
change=[]
for i in range(len(all_coi_value)):
change.append(abs(all_coi_value[i]))
all_coi_value=change
log=open(str(root+"result.txt"),"a+")
btpr=""
for i in range(len(bt)):
btpr=btpr+str(bt[i])
log.write(btpr)
print(btpr)
change1=[]
for i in range(len(all_coi_value)):
if all_coi_value[i]!=0:
change1.append(all_coi_value[i])
else:
change1.append("")
all_coi_value=change1
for i in range(len(sort)):
pr=str(sort[i]+"\t")
dic={}
for x in range(len(tag)):
dic[x]="\t"
for l in range(len(all_coi_name)):
if all_coi_name[l]==sort[i]:
n=part(l,all_count)
dic[n]=all_coi_value[l]
for m in range(len(dic)):
if m !=len(dic)-1:
if str(list(dic.values())[m])=="\t":
pr=pr+str(list(dic.values())[m])
else:
pr=pr+str(list(dic.values())[m])+"\t"
else:
if str(list(dic.values())[m])=="\t":
pr=pr+"\n"
else:
pr=pr+str(list(dic.values())[m])+"\n"
print(pr)
log.write(pr)
log.close()
'''
log.write(str("ID\t"+line[53:]))
for n in range(len(how)):
log.write(str(str(name[n])+"\t"+str(value[n]).lstrip("-")+"\n"))
log.close()
'''