Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import var_dump
- import csv
- import re
- class Salary:
- def __init__(self,
- salary_from: str,
- salary_to: str,
- salary_gross: str,
- salary_currency: str) -> None:
- self.salary_from = salary_from
- self.salary_to = salary_to
- self.salary_gross = salary_gross
- self.salary_currency = salary_currency
- class DataSet:
- def __init__(self,
- file_name: str,
- vacancies_objects: list) -> None:
- self.file_name = file_name
- self.vacancies_objects = vacancies_objects
- @staticmethod
- def get_clean_string(raw_html) -> str:
- return re.sub(re.compile('<.*?>'), '', raw_html)
- def csv_reader(self) -> tuple:
- current_array, vacancies_for_job = list(), list()
- with open(self.file_name, encoding='utf-8-sig') as r_file:
- count = 0
- cur_file = csv.reader(r_file, delimiter=",")
- for row in cur_file:
- if count == 0:
- count += 1
- current_array = row
- else:
- if '' in row or len(row) != len(current_array):
- continue
- vacancies_for_job.append(row)
- if len(current_array) == 0:
- print('Пустой файл')
- exit()
- return vacancies_for_job, current_array
- def set_vacancies(self):
- (vacancies, title) = self.csv_reader()
- self.vacancies_objects = self.csv_filer(vacancies, title)
- def csv_filer(self, reader, my_list: list) -> list:
- vacancies = list()
- for row in reader:
- current = dict()
- for i in range(len(row)):
- current[my_list[i]] = row[i].split('\n')
- for j in range(len(current[my_list[i]])):
- current[my_list[i]][j] = ' '.join(self.get_clean_string(current[my_list[i]][j]).split())
- vacancies.append(Vacancy(current))
- return vacancies
- class Vacancy:
- def __init__(self, object_vacancy) -> None:
- self.name = object_vacancy['name'][0]
- self.description = object_vacancy['description'][0]
- self.key_skills = object_vacancy['key_skills']
- self.experience_id = object_vacancy['experience_id'][0]
- self.premium = object_vacancy['premium'][0]
- self.employer_name = object_vacancy['employer_name'][0]
- self.salary = Salary(object_vacancy['salary_from'][0], object_vacancy['salary_to'][0],
- object_vacancy['salary_gross'][0], object_vacancy['salary_currency'][0])
- self.area_name = object_vacancy['area_name'][0]
- self.published_at = object_vacancy['published_at'][0]
- file = input('Введите название файла: ')
- parameters = input('Введите параметр фильтрации: ')
- sort_parameters = input('Введите параметр сортировки: ')
- sort_descending = input('Обратный порядок сортировки (Да / Нет): ')
- output = input('Введите диапазон вывода: ')
- columns = input('Введите требуемые столбцы: ')
- dataset = DataSet(file, list())
- dataset.set_vacancies()
- var_dump.var_dump(dataset)
Add Comment
Please, Sign In to add comment