From db2343625c85792f5cf3d21e6ffc62ad55b17446 Mon Sep 17 00:00:00 2001 From: Lev Rusanov <30170278+JDM170@users.noreply.github.com> Date: Sat, 12 Mar 2022 00:48:21 +0700 Subject: [PATCH] Update files (match_name.py, prog.py, filesio.py) --- filesio.py | 5 +++-- match_name.py | 22 +++++++++++++--------- prog.py | 40 +++++++++++++++++++++++++--------------- 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/filesio.py b/filesio.py index 6666384..4d9c79c 100644 --- a/filesio.py +++ b/filesio.py @@ -19,9 +19,10 @@ class FilesIO: def get_data(self): try: - with open(file_name, encoding="utf-8") as f: + with open(self.file_name, encoding="utf-8") as f: ret_data = load(f) except FileNotFoundError: self.create_default_file() - ret_data = self.default_values + # ret_data = self.default_values + return False return ret_data diff --git a/match_name.py b/match_name.py index 7f5899a..b449290 100644 --- a/match_name.py +++ b/match_name.py @@ -5,18 +5,22 @@ from re import match # Список выражений по которым проводится проверка # По дефолту стоит регион R54, индекс 630300 -expr_list = [ +default_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 ] -def check_arm_name(pc_name): - for r in expr_list: - if match(r[0], pc_name): - pc_name = "{}{}".format(r[1], pc_name) - break - if match(expr_list[2][0], pc_name): - return pc_name - return False +class MatchIO: + 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): + pc_name = "{}{}".format(r[1], pc_name) + break + if match(self.expr_list[2][0], pc_name): + return pc_name + return False diff --git a/prog.py b/prog.py index 35b679f..6ca2566 100644 --- a/prog.py +++ b/prog.py @@ -5,44 +5,54 @@ from sys import exit, argv # from os import system from subprocess import Popen from filesio import FilesIO -from match_name import check_arm_name +from match_name import MatchIO file_name = ".\\computer_names.json" default_values = { - "1": [ # Пятидневка - "IT01", - "IT02" + "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 ], - "2": [ # Цех - "PIS09", - "PIS10" - ] + "comp": { + "2": [ # Пятидневка + "IT01", + "IT02" + ], + "7": [ # Цех + "PIS09", + "PIS10" + ] + } } loaded_file = None -def main(prog_key): +def main(comp_key): 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: 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: # print("pc_name:", formatted_pc_name) - # system("shutdown /m \\{} /r /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) - # Popen("shutdown /m \\{} /r /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait() - print("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 /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)).wait() + print("shutdown /m \\\{} /r /f /t 60 /c \"Плановая перезагрузка компьютера через 1 минуту!\"".format(formatted_pc_name)) else: print("Попробуйте еще раз выбрать область запуска скрипта!") if __name__ == "__main__": if len(argv) < 2: - print("Укажите номер запускаемой области!\n1 - Кабинеты; 2 - Цех") + print("Укажите номер запускаемой области!\n2 - Кабинеты; 7 - Цех") exit() try: filesio = FilesIO(file_name, default_values) loaded_file = filesio.get_data() + if loaded_file is False: + return + matchio = MatchIO(loaded_file.get("expr_list")) main(argv[1]) except KeyboardInterrupt: exit()