-
Notifications
You must be signed in to change notification settings - Fork 0
/
tools.py
135 lines (115 loc) · 3.63 KB
/
tools.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import json
import os
import datetime
import openpyxl
from qfluentwidgets import (
InfoBarIcon,
InfoBar as infobar,
PushButton,
setTheme,
Theme,
FluentIcon,
InfoBarPosition,
InfoBarManager,
)
from PyQt5.QtCore import Qt, QRectF
class FileOperation:
def ReadJSon(file_path):
with open(file_path, "r") as file:
data = json.load(file)
return data
def WriteJson(file_path, data):
with open(file_path, "w") as file:
json.dump(data, file, indent=4)
def CreateJson(file_path, data):
if not os.path.exists(os.path.dirname(file_path)):
try:
os.makedirs(os.path.dirname(file_path))
except OSError as e:
if e.errno != os.errno.EEXIST:
raise
if not os.path.exists(file_path):
with open(file_path, "w") as file:
json.dump(data, file)
def CreateText(file_path, data):
if not os.path.exists(os.path.dirname(file_path)):
try:
os.makedirs(os.path.dirname(file_path))
except OSError as e:
if e.errno != os.errno.EEXIST:
raise
if not os.path.exists(file_path):
with open(file_path, "w") as file:
file.write(data)
def WriteText(file_path, data):
with open(file_path, "w") as file:
file.write(data)
def ReadText(file_path):
with open(file_path, "r") as file:
return file.context()
def ReadExcel(path_file):
workbook = openpyxl.load_workbook(path_file)
# 获取工作表
sheet = workbook.active
data = [[cell.value for cell in row] for row in sheet.iter_rows()]
workbook.close()
return data
def WriteExcel(path_file, data):
""" """
workbook = openpyxl.load_workbook(path_file)
sheet = workbook.active
for row, new_row_data in zip(sheet.iter_rows(), data):
for cell, new_cell_data in zip(row, new_row_data):
cell.value = new_cell_data
workbook.save(path_file)
workbook.close()
class Logger:
def Info(data):
print(f"[INFO][{Logger.GetTime()}] {data}\033[0m ")
def Warning(data):
print(f"\033[33m[WARN][{Logger.GetTime()}] {data}\033[0m ")
def Error(data):
print(f"\033[31m[ERROR][{Logger.GetTime()}] {data}\033[0m ")
def Debug(data, Debug_mode):
"""发送一个调试 `Log`
#### 参数:
- data `string` 内容
"""
if Debug_mode:
print(f"\033[34m[DEBUG][{Logger.GetTime()}] {data}\033[0m ")
def GetTime():
"""获取当前时间"""
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
return current_time
class InfoBar:
def Success(self, title, content):
# convenient class mothod
infobar.success(
title,
content,
orient=Qt.Horizontal,
isClosable=True,
position=InfoBarPosition.TOP,
duration=3000,
parent=self,
)
def Warnning(self, title, content):
infobar.warning(
title,
content,
orient=Qt.Horizontal,
isClosable=False, # disable close button
position=InfoBarPosition.TOP,
duration=3000,
parent=self,
)
def Error(self, title, content):
infobar.error(
title,
content,
orient=Qt.Horizontal,
isClosable=True,
position=InfoBarPosition.TOP,
duration=-1,
parent=self,
)