Update files (match_name.py, prog.py, filesio.py)

This commit is contained in:
2022-03-12 00:48:21 +07:00
committed by GitHub
parent 733245cd5b
commit db2343625c
3 changed files with 41 additions and 26 deletions

View File

@@ -19,9 +19,10 @@ class FilesIO:
def get_data(self): def get_data(self):
try: try:
with open(file_name, encoding="utf-8") as f: with open(self.file_name, encoding="utf-8") as f:
ret_data = load(f) ret_data = load(f)
except FileNotFoundError: except FileNotFoundError:
self.create_default_file() self.create_default_file()
ret_data = self.default_values # ret_data = self.default_values
return False
return ret_data return ret_data

View File

@@ -5,18 +5,22 @@ from re import match
# Список выражений по которым проводится проверка # Список выражений по которым проводится проверка
# По дефолту стоит регион R54, индекс 630300 # По дефолту стоит регион R54, индекс 630300
expr_list = [ default_expr_list = [
[r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01 [r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01
[r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01 [r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01
[r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01 [r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01
] ]
def check_arm_name(pc_name): class MatchIO:
for r in expr_list: def __init__(self, expr_list):
self.expr_list = expr_list is not None and expr_list or default_expr_list
def check_arm_name(self, pc_name):
for r in self.expr_list:
if match(r[0], pc_name): if match(r[0], pc_name):
pc_name = "{}{}".format(r[1], pc_name) pc_name = "{}{}".format(r[1], pc_name)
break break
if match(expr_list[2][0], pc_name): if match(self.expr_list[2][0], pc_name):
return pc_name return pc_name
return False return False

30
prog.py
View File

@@ -5,44 +5,54 @@ from sys import exit, argv
# from os import system # from os import system
from subprocess import Popen from subprocess import Popen
from filesio import FilesIO from filesio import FilesIO
from match_name import check_arm_name from match_name import MatchIO
file_name = ".\\computer_names.json" file_name = ".\\computer_names.json"
default_values = { default_values = {
"1": [ # Пятидневка "expr_list": [
[r"^[a-zA-Z]+\d+$", "R54-630300"], # THE01
[r"^\d+[a-zA-Z]+\d+$", "R54-"], # 630300THE01
[r"^[rR]\d*[-]\d+[a-zA-Z]+\d+$", ""] # R54-630300THE01
],
"comp": {
"2": [ # Пятидневка
"IT01", "IT01",
"IT02" "IT02"
], ],
"2": [ # Цех "7": [ # Цех
"PIS09", "PIS09",
"PIS10" "PIS10"
] ]
}
} }
loaded_file = None loaded_file = None
def main(prog_key): def main(comp_key):
global loaded_file global loaded_file
list_pc_names = loaded_file.get(prog_key) list_pc_names = loaded_file.get("comp").get(comp_key)
if list_pc_names is not None: if list_pc_names is not None:
for pc_name in list_pc_names: for pc_name in list_pc_names:
formatted_pc_name = check_arm_name(pc_name) formatted_pc_name = matchio.check_arm_name(pc_name)
if formatted_pc_name is not False: if formatted_pc_name is not False:
# print("pc_name:", formatted_pc_name) # print("pc_name:", formatted_pc_name)
# system("shutdown /m \\{} /r /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) # system("shutdown /m \\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
# Popen("shutdown /m \\{} /r /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait() # Popen("shutdown /m \\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait()
print("shutdown /m \\{} /r /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name))
else: else:
print("Попробуйте еще раз выбрать область запуска скрипта!") print("Попробуйте еще раз выбрать область запуска скрипта!")
if __name__ == "__main__": if __name__ == "__main__":
if len(argv) < 2: if len(argv) < 2:
print("Укажите номер запускаемой области!\n1 - Кабинеты; 2 - Цех") print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех")
exit() exit()
try: try:
filesio = FilesIO(file_name, default_values) filesio = FilesIO(file_name, default_values)
loaded_file = filesio.get_data() loaded_file = filesio.get_data()
if loaded_file is False:
return
matchio = MatchIO(loaded_file.get("expr_list"))
main(argv[1]) main(argv[1])
except KeyboardInterrupt: except KeyboardInterrupt:
exit() exit()