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):
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

View File

@@ -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:
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(expr_list[2][0], pc_name):
if match(self.expr_list[2][0], pc_name):
return pc_name
return False

30
prog.py
View File

@@ -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": [ # Пятидневка
"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",
"IT02"
],
"2": [ # Цех
"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()