打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

目前wiki关闭了自行注册账号的功能,如需注册账号,请查阅Help:注册账号

Coi统计数据程序:修订间差异

来自RIA | Wiki
Arthals留言 | 贡献
无编辑摘要
Aunst留言 | 贡献
改格式
第1行: 第1行:
== 主程序·RIA_COI_MAIN ==
== 主程序·RIA_COI_MAIN ==
<code>import tkinter as tk</code>
<pre>
import tkinter as tk


<code>import tkinter.messagebox</code>
import tkinter.messagebox


<code>import os</code>
import os


<code>import os.path</code>
import os.path


<code>import tkinter.messagebox</code>
import tkinter.messagebox


<code>from PIL import ImageTk, Image</code>
from PIL import ImageTk, Image


<code>from tkinter import filedialog</code>
from tkinter import filedialog


<code>import base64</code>
import base64


<code>logID=""</code>
logID=""


<code>root=""</code>
root=""


<code>TimeLog1=0</code>
TimeLog1=0


<code>TimeLog2=0</code>
TimeLog2=0


<code>config=""</code>
config=""


<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>def go():</code>
def go():


<code>logID=str(entry.get())</code>
logID=str(entry.get())


<code>root=filedialog.askopenfilename()</code>
root=filedialog.askopenfilename()


<code>TimeLog1=float(entry_TimeLog1.get())</code>
TimeLog1=float(entry_TimeLog1.get())


<code>TimeLog2=float(entry_TimeLog2.get())</code>
TimeLog2=float(entry_TimeLog2.get())


<code>config=tkinter.messagebox.askquestion("选择","是否删除x54的数据")</code>
config=tkinter.messagebox.askquestion("选择","是否删除x54的数据")


<code>data=open(str(root),"r",encoding="UTF-8")</code>
data=open(str(root),"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 mine in data:</code>
for mine in data:


<code>coi.append(str(mine))</code>
coi.append(str(mine))


<code>for i in range(len(coi)):</code>
for i in range(len(coi)):


<code>if len(coi[i])<=39:</code>
if len(coi[i])<=39:


<code>continue</code>
continue


<code>linex=coi[i].split(" ")</code>
linex=coi[i].split(" ")


<code>if len(linex)<7:</code>
if len(linex)<7:


<code>continue</code>
continue


<code>linex=linex[4:]</code>
linex=linex[4:]


<code>if linex[0]=="*" and linex[1]==logID and linex[2]=="统计结束\n":</code>
if linex[0]=="*" and linex[1]==logID and linex[2]=="统计结束\n":


<code>break</code>
break


<code>elif linex[0]=="*" and linex[1]==logID and linex[2][:3]=="统计:":</code>
elif linex[0]=="*" and linex[1]==logID and linex[2][:3]=="统计:":


<code>tag.append(linex[2][3:].rstrip("\n"))</code>
tag.append(linex[2][3:].rstrip("\n"))


<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][40])</code>
t_f = is_number(coi[l][40])


<code>if t_f == True:</code>
if t_f == True:


<code>liney=coi[l][40:]</code>
liney=coi[l][40:]


<code>linex_list=liney.split(" ")</code>
linex_list=liney.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(-(all_coi_value[i]))</code>
change.append(-(all_coi_value[i]))


<code>all_coi_value=change</code>
all_coi_value=change


<code>log=open(str(root.rstrip("coi.txt")+"result.txt"),"w+",encoding="UTF-8")</code>
log=open(str(root.rstrip("coi.txt")+"result.txt"),"w+",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>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>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>tkinter.messagebox.showinfo("Congratulations!","数据处理完毕。")</code>
tkinter.messagebox.showinfo("Congratulations!","数据处理完毕。")


<code>roo = tk.Tk()</code>
roo = tk.Tk()


<code>roo.title('RIA 援建数据处理系统GUI by Arthals')</code>
roo.title('RIA 援建数据处理系统GUI by Arthals')


<code>canvas = tk.Canvas(roo, width=769,height=432,bd=0, highlightthickness=0)</code>
canvas = tk.Canvas(roo, width=769,height=432,bd=0, highlightthickness=0)


<code>from RIABG_png import img as socket</code>
from RIABG_png import img as socket


<code>imp = open('RIABG.png', 'wb')</code>
imp = open('RIABG.png', 'wb')


<code>imp.write(base64.b64decode(socket))</code>
imp.write(base64.b64decode(socket))


<code>imp.close()</code>
imp.close()


<code>imgpath = 'RIABG.png'</code>
imgpath = 'RIABG.png'


<code>img = Image.open(imgpath)</code>
img = Image.open(imgpath)


<code>photo = ImageTk.PhotoImage(img)</code>
photo = ImageTk.PhotoImage(img)


<code>canvas.create_image(0, 0, anchor="nw", image=photo)</code>
canvas.create_image(0, 0, anchor="nw", image=photo)


<code>canvas.pack()</code>
canvas.pack()


<code>entry=tk.Entry(roo,insertbackground='blue', highlightthickness =2)</code>
entry=tk.Entry(roo,insertbackground='blue', highlightthickness =2)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_root=tk.Entry(roo,insertbackground='blue', highlightthickness =2)</code>
entry_root=tk.Entry(roo,insertbackground='blue', highlightthickness =2)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_TimeLog1=tk.Entry(roo,insertbackground='blue', highlightthickness =2)</code>
entry_TimeLog1=tk.Entry(roo,insertbackground='blue', highlightthickness =2)


<code>entry_TimeLog2=tk.Entry(roo,insertbackground='blue', highlightthickness =2)</code>
entry_TimeLog2=tk.Entry(roo,insertbackground='blue', highlightthickness =2)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_config=tk.Entry(roo,insertbackground='blue', highlightthickness =2)</code>
entry_config=tk.Entry(roo,insertbackground='blue', highlightthickness =2)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry.pack()</code>
entry.pack()


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_root.pack()</code>
entry_root.pack()


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_TimeLog1.pack()</code>
entry_TimeLog1.pack()


<code>entry_TimeLog2.pack()</code>
entry_TimeLog2.pack()


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>entry_config.pack()</code>
entry_config.pack()


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>button=tkinter.Button(roo,text="进行统计",font=('黑体', 20),bg="green",command=go)</code>
button=tkinter.Button(roo,text="进行统计",font=('黑体', 20),bg="green",command=go)


<code>button.pack()</code>
button.pack()


<code>canvas.create_window(60, 50, anchor="nw",width=100, height=30,window=entry)</code>
canvas.create_window(60, 50, anchor="nw",width=100, height=30,window=entry)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>canvas.create_window(120, 120, width=100, height=20,window=entry_root)</code>
canvas.create_window(120, 120, width=100, height=20,window=entry_root)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>canvas.create_window(60, 130, anchor="nw",width=70, height=25,window=entry_TimeLog1)</code>
canvas.create_window(60, 130, anchor="nw",width=70, height=25,window=entry_TimeLog1)


<code>canvas.create_window(60, 190, anchor="nw",width=70, height=25,window=entry_TimeLog2)</code>
canvas.create_window(60, 190, anchor="nw",width=70, height=25,window=entry_TimeLog2)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>canvas.create_window(120, 160, width=100, height=20,window=entry_config)</code>
canvas.create_window(120, 160, width=100, height=20,window=entry_config)


<code><nowiki>'''</nowiki></code>
<nowiki>'''</nowiki>


<code>canvas.create_window(720, 350,anchor="ne", width=235, height=60,window=button)</code>
canvas.create_window(720, 350,anchor="ne", width=235, height=60,window=button)


<code>roo.mainloop()</code>
roo.mainloop()
 
</pre>


== 图片转换程序 ==
== 图片转换程序 ==

2021年3月22日 (一) 22:13的版本

主程序·RIA_COI_MAIN

import tkinter as tk

import tkinter.messagebox

import os

import os.path

import tkinter.messagebox

from PIL import ImageTk, Image

from tkinter import filedialog

import base64

logID=""

root=""

TimeLog1=0

TimeLog2=0

config=""

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

def go():

logID=str(entry.get())

root=filedialog.askopenfilename()

TimeLog1=float(entry_TimeLog1.get())

TimeLog2=float(entry_TimeLog2.get())

config=tkinter.messagebox.askquestion("选择","是否删除x54的数据")

data=open(str(root),"r",encoding="UTF-8")

len_logID=len(logID)

coi=[]

all_coi_name=[]

all_coi_value=[]

count=[]

all_coi={}

tag=[]

for mine in data:

coi.append(str(mine))

for i in range(len(coi)):

if len(coi[i])<=39:

continue

linex=coi[i].split(" ")

if len(linex)<7:

continue

linex=linex[4:]

if linex[0]=="*" and linex[1]==logID and linex[2]=="统计结束\n":

break

elif linex[0]=="*" and linex[1]==logID and linex[2][:3]=="统计:":

tag.append(linex[2][3:].rstrip("\n"))

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][40])

if t_f == True:

liney=coi[l][40:]

linex_list=liney.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(-(all_coi_value[i]))

all_coi_value=change

log=open(str(root.rstrip("coi.txt")+"result.txt"),"w+",encoding="UTF-8")

btpr=""

for i in range(len(bt)):

btpr=btpr+str(bt[i])

log.write(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"

log.write(pr)

log.close()

tkinter.messagebox.showinfo("Congratulations!","数据处理完毕。")

roo = tk.Tk()

roo.title('RIA 援建数据处理系统GUI by Arthals')

canvas = tk.Canvas(roo, width=769,height=432,bd=0, highlightthickness=0)

from RIABG_png import img as socket

imp = open('RIABG.png', 'wb')

imp.write(base64.b64decode(socket))

imp.close()

imgpath = 'RIABG.png'

img = Image.open(imgpath)

photo = ImageTk.PhotoImage(img)

canvas.create_image(0, 0, anchor="nw", image=photo)

canvas.pack()

entry=tk.Entry(roo,insertbackground='blue', highlightthickness =2)

'''

entry_root=tk.Entry(roo,insertbackground='blue', highlightthickness =2)

'''

entry_TimeLog1=tk.Entry(roo,insertbackground='blue', highlightthickness =2)

entry_TimeLog2=tk.Entry(roo,insertbackground='blue', highlightthickness =2)

'''

entry_config=tk.Entry(roo,insertbackground='blue', highlightthickness =2)

'''

entry.pack()

'''

entry_root.pack()

'''

entry_TimeLog1.pack()

entry_TimeLog2.pack()

'''

entry_config.pack()

'''

button=tkinter.Button(roo,text="进行统计",font=('黑体', 20),bg="green",command=go)

button.pack()

canvas.create_window(60, 50, anchor="nw",width=100, height=30,window=entry)

'''

canvas.create_window(120, 120, width=100, height=20,window=entry_root)

'''

canvas.create_window(60, 130, anchor="nw",width=70, height=25,window=entry_TimeLog1)

canvas.create_window(60, 190, anchor="nw",width=70, height=25,window=entry_TimeLog2)

'''

canvas.create_window(120, 160, width=100, height=20,window=entry_config)

'''

canvas.create_window(720, 350,anchor="ne", width=235, height=60,window=button)

roo.mainloop()

图片转换程序

import base64

def pic2py(picture_name):

"""

将图像文件转换为py文件

:param picture_name:

:return:

"""

open_pic = open("%s" % picture_name, 'rb')

b64str = base64.b64encode(open_pic.read())

open_pic.close()

# 注意这边b64str一定要加上.decode()

write_data = 'img = "%s"' % b64str.decode()

f = open('%s.py' % picture_name.replace('.', '_'), 'w+')

f.write(write_data)

f.close()

if __name__ == '__main__':

pics = ["RIABG.png"]

for i in pics:

pic2py(i)

print("ok")