Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Module task1"""
- import os
- import re
- import csv
- PATH = os.path.normpath(os.getcwd())
- def get_strings_to_lists(keys_list, values_list, iterated_string):
- splitted_files_string = iterated_string.split(':')
- normalised_value = splitted_files_string[-1].strip()
- values_list.append(normalised_value)
- normalised_key = splitted_files_string[0].strip()
- if normalised_key not in keys_list:
- keys_list.append(normalised_key)
- def get_data(path_for_work):
- os_prod_list = []
- os_name_list = []
- os_code_list = []
- os_type_list = []
- main_data = []
- files_list = os.listdir(path_for_work)
- info_files_list = []
- for file in files_list:
- splitted_file_name = file.split('.')
- file_name = splitted_file_name[0]
- if re.match('info', file_name):
- info_files_list.append(file)
- for info_file in info_files_list:
- with open(info_file, 'r') as info:
- for idx, string in enumerate(info):
- if re.match('Изготовитель системы', string):
- get_strings_to_lists(main_data, os_prod_list, string)
- elif re.match('Название ОС', string):
- get_strings_to_lists(main_data, os_name_list, string)
- elif re.match('Код продукта', string):
- get_strings_to_lists(main_data, os_code_list, string)
- elif re.match('Тип системы', string):
- get_strings_to_lists(main_data, os_type_list, string)
- # ну очень костыльно,
- # но спустя 3.5 часа, лучше я ничего, к сожалению, не придумал =) :
- device_1 = [os_prod_list[0], os_code_list[0], os_type_list[0]]
- device_2 = [os_prod_list[1], os_code_list[1], os_type_list[1]]
- device_3 = [os_prod_list[2], os_code_list[2], os_type_list[2]]
- total_data = [main_data, device_1, device_2, device_3]
- return total_data
- print(get_data(PATH))
- def write_to_csv(data):
- with open('report.csv', 'w') as report:
- report_writer = csv.writer(report)
- for row in data:
- report_writer.writerow(row)
- write_to_csv(get_data(PATH))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement