Advertisement
Redomine

Untitled

Sep 9th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. import xlwt
  2.  
  3. equipment_name = []
  4. fragments_names = [[]]
  5. system_names = []
  6. parameters = []
  7. parameters_search = 'stop'
  8. scan_status = 'stop'
  9. work_status = 'stop'
  10. parameters_count = 0
  11. fragments_names_count = 0
  12. equipment_count = 0
  13. parameters_found = 0
  14.  
  15. with open('parametres.txt', 'r') as inf:
  16. text = []
  17. for line in inf:
  18. line = line.replace('\n', ' ').lower().split()
  19. if len(line) > 0:
  20. if line[0] \
  21. == 'маркер_установки:':
  22. for word in line[1:]:
  23. equipment_name.append(word)
  24. if line[0] \
  25. == 'фрагмент:':
  26. for word in line[1:]:
  27. fragments_names[fragments_names_count].append(word)
  28. fragments_names_count += 1
  29. parameters_count = 0
  30. fragments_names.append([])
  31. parameters.append([[]])
  32. if line[0] \
  33. == 'параметр:':
  34. for word in line[1:]:
  35. parameters[fragments_names_count
  36. - 1][parameters_count].append(word)
  37. parameters_count += 1
  38. parameters[fragments_names_count - 1].append([])
  39. del fragments_names[-1]
  40. for parametr in parameters:
  41. del parametr[-1]
  42. print('Введите имя файла в формате имя файла.txt')
  43. file_name = input()
  44.  
  45.  
  46. with open(file_name, 'r') as inf:
  47. text = []
  48. for line in inf:
  49. line = line.replace('\n', ' ').lower().split()
  50. text = text + line
  51. if set(equipment_name).issubset(text):
  52. system_names.append(text[text.index(equipment_name[-2])
  53. + 1:text.index(equipment_name[-1])])
  54. del text[:text.index(equipment_name[-1]) + 1]
  55. equipment_count += 1
  56. work_status = 'start'
  57.  
  58. if work_status == 'start':
  59. if scan_status == 'stop':
  60. for fragment_name in fragments_names:
  61. if set(fragment_name).issubset(text):
  62. current_fragment = \
  63. fragments_names.index(fragment_name)
  64. del text[:text.index(fragment_name[-1])]
  65. scan_status = 'start'
  66. break
  67.  
  68. if scan_status == 'start':
  69. for name in parameters[current_fragment]:
  70. if set(name).issubset(text):
  71. system_names[equipment_count
  72. - 1].append(text[text.index(name[-2])
  73. + 1:text.index(name[-1])])
  74. parameters_found += 1
  75. del text[:text.index(name[-1])]
  76. if parameters_found \
  77. == len(parameters[current_fragment]):
  78. parameters_found = 0
  79. scan_status = 'stop'
  80.  
  81. font0 = xlwt.Font()
  82. font0.name = 'Times New Roman'
  83. font0.colour_index = 2
  84. font0.bold = True
  85.  
  86. style0 = xlwt.XFStyle()
  87. style0.font = font0
  88.  
  89. wb = xlwt.Workbook()
  90. ws = wb.add_sheet('Sheet', cell_overwrite_ok=True)
  91. current_line = 2
  92.  
  93. equipment_name = '_'.join(equipment_name)
  94.  
  95. ws.write(0, 0, equipment_name, style0)
  96.  
  97. for parameter in parameters:
  98. for position in range(len(parameter)):
  99. parameter[position] = '_'.join(parameter[position])
  100.  
  101. parameter_line = []
  102. for parameter in parameters:
  103. parameter_line += parameter
  104.  
  105. for position in range(len(parameter_line)):
  106. ws.write(1, position + 1, parameter_line[position], style0)
  107.  
  108. fragments_name_position = 1
  109. differens = len(parameter_line) // len(fragments_names)
  110. for position in range(len(fragments_names)):
  111. fragments_names[position] = '_'.join(fragments_names[position])
  112. ws.write(0, fragments_name_position, fragments_names[position],
  113. style0)
  114. fragments_name_position += differens
  115.  
  116. for line in system_names:
  117. for position in range(len(line)):
  118. ws.write(current_line, position, line[position], style0)
  119. current_line += 1
  120.  
  121. wb.save('example.xls')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement