Coi统计数据程序:修订间差异
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
import os | <code>import os</code> | ||
import os.path | <code>import os.path</code> | ||
def is_number(s): | <code>def is_number(s):</code> | ||
try: | <code>try:</code> | ||
float(s) | <code>float(s)</code> | ||
return True | <code>return True</code> | ||
except ValueError: | <code>except ValueError:</code> | ||
return False | <code>return False</code> | ||
def replaceList(list1, num, replace): | <code>def replaceList(list1, num, replace):</code> | ||
list2 =[] | <code>list2 =[]</code> | ||
for i in range(len(list1)): | <code>for i in range(len(list1)):</code> | ||
if i == num: | <code>if i == num:</code> | ||
list2.append(replace) | <code>list2.append(replace)</code> | ||
else: | <code>else:</code> | ||
list2.append(list1[i]) | <code>list2.append(list1[i])</code> | ||
return list2 | <code>return list2</code> | ||
def part(num,list1): | <code>def part(num,list1):</code> | ||
for i in range(len(list1)): | <code>for i in range(len(list1)):</code> | ||
if num<=list1[i]: | <code>if num<=list1[i]:</code> | ||
return i | <code>return i</code> | ||
break | <code>break</code> | ||
root=str(input("请输入文件目录路径(不含有/coi.txt):")) | <code>root=str(input("请输入文件目录路径(不含有/coi.txt):"))</code> | ||
print("——Welcome!欢迎来到RCB援建数据统计系统,by Arthals——") | <code>print("——Welcome!欢迎来到RCB援建数据统计系统,by Arthals——")</code> | ||
logID=str(input("请输入统计人ID:")) | <code>logID=str(input("请输入统计人ID:"))</code> | ||
TimeLog1=float(input("请输入较小的时间刻度(正整数):")) | <code>TimeLog1=float(input("请输入较小的时间刻度(正整数):"))</code> | ||
TimeLog2=float(input("请输入较大的时间刻度(正整数):")) | <code>TimeLog2=float(input("请输入较大的时间刻度(正整数):"))</code> | ||
config=str(input("是否删除数量为54的数据,如果是,请输入yes;如果不是,请输入no:")) | <code>config=str(input("是否删除数量为54的数据,如果是,请输入yes;如果不是,请输入no:"))</code> | ||
data=open(str(root+"/coi.txt"),"r") | <code>data=open(str(root+"/coi.txt"),"r",encoding="UTF-8")</code> | ||
len_logID=len(logID) | <code>len_logID=len(logID)</code> | ||
coi=[] | <code>coi=[]</code> | ||
all_coi_name=[] | <code>all_coi_name=[]</code> | ||
all_coi_value=[] | <code>all_coi_value=[]</code> | ||
count=[] | <code>count=[]</code> | ||
all_coi={} | <code>all_coi={}</code> | ||
tag=[] | <code>tag=[]</code> | ||
for line in data: | <code>for line in data:</code> | ||
coi.append(str(line)) | <code>coi.append(str(line))</code> | ||
for i in range(len(coi)): | <code>for i in range(len(coi)):</code> | ||
line=coi[i] | <code>line=coi[i]</code> | ||
if line[40:47+len_logID]==str("* "+logID+" 统计结束"): | <code>if line[40:47+len_logID]==str("* "+logID+" 统计结束"):</code> | ||
break | <code>break</code> | ||
if line[40:46+len_logID]==str("* "+logID+" 统计:"): | <code>if line[40:46+len_logID]==str("* "+logID+" 统计:"):</code> | ||
tag.append(line[46+len_logID:].rstrip("\n")) | <code>tag.append(line[46+len_logID:].rstrip("\n"))</code> | ||
print("Now:",line[43+len_logID:].rstrip("")) | <code>print("Now:",line[43+len_logID:].rstrip(""))</code> | ||
coi2=[] | <code>coi2=[]</code> | ||
how={} | <code>how={}</code> | ||
for l in range(i+1,len(coi)): | <code>for l in range(i+1,len(coi)):</code> | ||
if coi[l][40:45+len_logID]=="* "+logID+" 统计": | <code>if coi[l][40:45+len_logID]=="* "+logID+" 统计":</code> | ||
break | <code>break</code> | ||
else: | <code>else:</code> | ||
t_f = is_number(coi[l][41]) | <code>t_f = is_number(coi[l][41])</code> | ||
if t_f == True: | <code>if t_f == True:</code> | ||
linex=coi[l][40:] | <code>linex=coi[l][40:]</code> | ||
linex_list=linex.split(" ") | <code>linex_list=linex.split(" ")</code> | ||
time=float(linex_list[0].rstrip("/h")) | <code>time=float(linex_list[0].rstrip("/h"))</code> | ||
if TimeLog1<=time<=TimeLog2: | <code>if TimeLog1<=time<=TimeLog2:</code> | ||
linex_list.remove("ago") | <code>linex_list.remove("ago")</code> | ||
linex_list.remove("-") | <code>linex_list.remove("-")</code> | ||
linex_list.pop() | <code>linex_list.pop()</code> | ||
if config=="yes" and linex_list[3]=="x54": | <code>if config=="yes" and linex_list[3]=="x54":</code> | ||
continue | <code>continue</code> | ||
if linex_list[2]=="removed": | <code>if linex_list[2]=="removed":</code> | ||
if linex_list[1] in how: | <code>if linex_list[1] in how:</code> | ||
how[linex_list[1]]=how[linex_list[1]]-int(linex_list[3].lstrip("x")) | <code>how[linex_list[1]]=how[linex_list[1]]-int(linex_list[3].lstrip("x"))</code> | ||
elif linex_list[1] not in how: | <code>elif linex_list[1] not in how:</code> | ||
how[linex_list[1]]=-int(linex_list[3].lstrip("x")) | <code>how[linex_list[1]]=-int(linex_list[3].lstrip("x"))</code> | ||
else: | <code>else:</code> | ||
print("Error") | <code>print("Error")</code> | ||
break | <code>break</code> | ||
if linex_list[2]=="added": | <code>if linex_list[2]=="added":</code> | ||
if linex_list[1] in how: | <code>if linex_list[1] in how:</code> | ||
how[linex_list[1]]=how[linex_list[1]]+int(linex_list[3].lstrip("x")) | <code>how[linex_list[1]]=how[linex_list[1]]+int(linex_list[3].lstrip("x"))</code> | ||
elif linex_list[1] not in how: | <code>elif linex_list[1] not in how:</code> | ||
how[linex_list[1]]=int(linex_list[3].lstrip("x")) | <code>how[linex_list[1]]=int(linex_list[3].lstrip("x"))</code> | ||
else: | <code>else:</code> | ||
print("Error") | <code>print("Error")</code> | ||
break | <code>break</code> | ||
name=list(how.keys()) | <code>name=list(how.keys())</code> | ||
count.append(len(name)) | <code>count.append(len(name))</code> | ||
for y in range(len(name)): | <code>for y in range(len(name)):</code> | ||
all_coi_name.append(name[y]) | <code>all_coi_name.append(name[y])</code> | ||
value=list(how.values()) | <code>value=list(how.values())</code> | ||
for y in range(len(value)): | <code>for y in range(len(value)):</code> | ||
all_coi_value.append(value[y]) | <code>all_coi_value.append(value[y])</code> | ||
sort=[] | <code>sort=[]</code> | ||
for i in range(len(all_coi_name)): | <code>for i in range(len(all_coi_name)):</code> | ||
if all_coi_name[i] in sort: | <code>if all_coi_name[i] in sort:</code> | ||
continue | <code>continue</code> | ||
else: | <code>else:</code> | ||
sort.append(all_coi_name[i]) | <code>sort.append(all_coi_name[i])</code> | ||
sort.sort() | <code>sort.sort()</code> | ||
all_count=[] | <code>all_count=[]</code> | ||
for i in range(len(count)): | <code>for i in range(len(count)):</code> | ||
if i==0: | <code>if i==0:</code> | ||
all_count.append(count[i]) | <code>all_count.append(count[i])</code> | ||
else: | <code>else:</code> | ||
all_count.append("0") | <code>all_count.append("0")</code> | ||
all_count=replaceList(all_count,i,int(count[i]+all_count[i-1])) | <code>all_count=replaceList(all_count,i,int(count[i]+all_count[i-1]))</code> | ||
all_count_change=[] | <code>all_count_change=[]</code> | ||
for i in range(len(all_count)): | <code>for i in range(len(all_count)):</code> | ||
all_count_change.append(int(all_count[i]-1)) | <code>all_count_change.append(int(all_count[i]-1))</code> | ||
all_count=all_count_change | <code>all_count=all_count_change</code> | ||
bt=[] | <code>bt=[]</code> | ||
for i in range(len(tag)+2): | <code>for i in range(len(tag)+2):</code> | ||
if i==0: | <code>if i==0:</code> | ||
bt.append("ID\t") | <code>bt.append("ID\t")</code> | ||
elif i != len(tag)+1: | <code>elif i != len(tag)+1:</code> | ||
bt.append(str(tag[i-1])+"\t") | <code>bt.append(str(tag[i-1])+"\t")</code> | ||
else: | <code>else:</code> | ||
bt.append(str("\n")) | <code>bt.append(str("\n"))</code> | ||
change=[] | <code>change=[]</code> | ||
for i in range(len(all_coi_value)): | <code>for i in range(len(all_coi_value)):</code> | ||
change.append(abs(all_coi_value[i])) | <code>change.append(abs(all_coi_value[i]))</code> | ||
all_coi_value=change | <code>all_coi_value=change</code> | ||
log=open(str(root+"/result.txt"),"a+") | <code>log=open(str(root+"/result.txt"),"a+",encoding="UTF-8")</code> | ||
btpr="" | <code>btpr=""</code> | ||
for i in range(len(bt)): | <code>for i in range(len(bt)):</code> | ||
btpr=btpr+str(bt[i]) | <code>btpr=btpr+str(bt[i])</code> | ||
log.write(btpr) | <code>log.write(btpr)</code> | ||
print(btpr) | <code>print(btpr)</code> | ||
change1=[] | <code>change1=[]</code> | ||
for i in range(len(all_coi_value)): | <code>for i in range(len(all_coi_value)):</code> | ||
if all_coi_value[i]!=0: | <code>if all_coi_value[i]!=0:</code> | ||
change1.append(all_coi_value[i]) | <code>change1.append(all_coi_value[i])</code> | ||
else: | <code>else:</code> | ||
change1.append("") | <code>change1.append("")</code> | ||
all_coi_value=change1 | <code>all_coi_value=change1</code> | ||
for i in range(len(sort)): | <code>for i in range(len(sort)):</code> | ||
pr=str(sort[i]+"\t") | <code>pr=str(sort[i]+"\t")</code> | ||
dic={} | <code>dic={}</code> | ||
for x in range(len(tag)): | <code>for x in range(len(tag)):</code> | ||
dic[x]="\t" | <code>dic[x]="\t"</code> | ||
for l in range(len(all_coi_name)): | <code>for l in range(len(all_coi_name)):</code> | ||
if all_coi_name[l]==sort[i]: | <code>if all_coi_name[l]==sort[i]:</code> | ||
n=part(l,all_count) | <code>n=part(l,all_count)</code> | ||
dic[n]=all_coi_value[l] | <code>dic[n]=all_coi_value[l]</code> | ||
print(sort[i],"\n",dic,"\n————————————————————") | <code>print(sort[i],"\n",dic,"\n————————————————————")</code> | ||
for m in range(len(dic)): | <code>for m in range(len(dic)):</code> | ||
if m !=len(dic)-1: | <code>if m !=len(dic)-1:</code> | ||
if str(list(dic.values())[m])=="\t": | <code>if str(list(dic.values())[m])=="\t":</code> | ||
pr=pr+str(list(dic.values())[m]) | <code>pr=pr+str(list(dic.values())[m])</code> | ||
else: | <code>else:</code> | ||
pr=pr+str(list(dic.values())[m])+"\t" | <code>pr=pr+str(list(dic.values())[m])+"\t"</code> | ||
else: | <code>else:</code> | ||
if str(list(dic.values())[m])=="\t": | <code>if str(list(dic.values())[m])=="\t":</code> | ||
pr=pr+"\n" | <code>pr=pr+"\n"</code> | ||
else: | <code>else:</code> | ||
pr=pr+str(list(dic.values())[m])+"\n" | <code>pr=pr+str(list(dic.values())[m])+"\n"</code> | ||
log.write(pr) | <code>log.write(pr)</code> | ||
log.close() | <code>log.close()</code> | ||
2019年9月8日 (日) 12:40的版本
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=str(input("请输入文件目录路径(不含有/coi.txt):"))
print("——Welcome!欢迎来到RCB援建数据统计系统,by Arthals——")
logID=str(input("请输入统计人ID:"))
TimeLog1=float(input("请输入较小的时间刻度(正整数):"))
TimeLog2=float(input("请输入较大的时间刻度(正整数):"))
config=str(input("是否删除数量为54的数据,如果是,请输入yes;如果不是,请输入no:"))
data=open(str(root+"/coi.txt"),"r",encoding="UTF-8")
len_logID=len(logID)
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:47+len_logID]==str("* "+logID+" 统计结束"):
break
if line[40:46+len_logID]==str("* "+logID+" 统计:"):
tag.append(line[46+len_logID:].rstrip("\n"))
print("Now:",line[43+len_logID:].rstrip(""))
coi2=[]
how={}
for l in range(i+1,len(coi)):
if coi[l][40:45+len_logID]=="* "+logID+" 统计":
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 TimeLog1<=time<=TimeLog2:
linex_list.remove("ago")
linex_list.remove("-")
linex_list.pop()
if config=="yes" and 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))
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"))
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+",encoding="UTF-8")
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]
print(sort[i],"\n",dic,"\n————————————————————")
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"
log.write(pr)
log.close()