Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import xlwt
- equipment_name = []
- fragments_names = [[]]
- system_names = []
- parameters = []
- parameters_search = 'stop'
- scan_status = 'stop'
- work_status = 'stop'
- parameters_count = 0
- fragments_names_count = 0
- equipment_count = 0
- parameters_found = 0
- with open('parametres.txt', 'r') as inf:
- text = []
- for line in inf:
- line = line.replace('\n', ' ').lower().split()
- if len(line) > 0:
- if line[0] \
- == 'маркер_установки:':
- for word in line[1:]:
- equipment_name.append(word)
- if line[0] \
- == 'фрагмент:':
- for word in line[1:]:
- fragments_names[fragments_names_count].append(word)
- fragments_names_count += 1
- parameters_count = 0
- fragments_names.append([])
- parameters.append([[]])
- if line[0] \
- == 'параметр:':
- for word in line[1:]:
- parameters[fragments_names_count
- - 1][parameters_count].append(word)
- parameters_count += 1
- parameters[fragments_names_count - 1].append([])
- del fragments_names[-1]
- for parametr in parameters:
- del parametr[-1]
- print('Введите имя файла в формате имя файла.txt')
- file_name = input()
- with open(file_name, 'r') as inf:
- text = []
- for line in inf:
- line = line.replace('\n', ' ').lower().split()
- text = text + line
- if set(equipment_name).issubset(text):
- system_names.append(text[text.index(equipment_name[-2])
- + 1:text.index(equipment_name[-1])])
- del text[:text.index(equipment_name[-1]) + 1]
- equipment_count += 1
- work_status = 'start'
- if work_status == 'start':
- if scan_status == 'stop':
- for fragment_name in fragments_names:
- if set(fragment_name).issubset(text):
- current_fragment = \
- fragments_names.index(fragment_name)
- del text[:text.index(fragment_name[-1])]
- scan_status = 'start'
- break
- if scan_status == 'start':
- for name in parameters[current_fragment]:
- if set(name).issubset(text):
- system_names[equipment_count
- - 1].append(text[text.index(name[-2])
- + 1:text.index(name[-1])])
- parameters_found += 1
- del text[:text.index(name[-1])]
- if parameters_found \
- == len(parameters[current_fragment]):
- parameters_found = 0
- scan_status = 'stop'
- font0 = xlwt.Font()
- font0.name = 'Times New Roman'
- font0.colour_index = 2
- font0.bold = True
- style0 = xlwt.XFStyle()
- style0.font = font0
- wb = xlwt.Workbook()
- ws = wb.add_sheet('Sheet', cell_overwrite_ok=True)
- current_line = 2
- equipment_name = '_'.join(equipment_name)
- ws.write(0, 0, equipment_name, style0)
- for parameter in parameters:
- for position in range(len(parameter)):
- parameter[position] = '_'.join(parameter[position])
- parameter_line = []
- for parameter in parameters:
- parameter_line += parameter
- for position in range(len(parameter_line)):
- ws.write(1, position + 1, parameter_line[position], style0)
- fragments_name_position = 1
- differens = len(parameter_line) // len(fragments_names)
- for position in range(len(fragments_names)):
- fragments_names[position] = '_'.join(fragments_names[position])
- ws.write(0, fragments_name_position, fragments_names[position],
- style0)
- fragments_name_position += differens
- for line in system_names:
- for position in range(len(line)):
- ws.write(current_line, position, line[position], style0)
- current_line += 1
- wb.save('example.xls')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement