Advertisement
mikhailemv

Untitled

Oct 6th, 2022
763
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.97 KB | None | 0 0
  1. import csv
  2. import re
  3. from math import floor
  4.  
  5.  
  6. def formatter(old_dictionary: dict) -> dict:
  7.     formatting_dictionary = {
  8.         "experience_id": {
  9.             "noExperience": "Нет опыта",
  10.             "between1And3": "От 1 года до 3 лет",
  11.             "between3And6": "От 3 до 6 лет",
  12.             "moreThan6": "Более 6 лет" },
  13.         "premium": {
  14.             'True': 'Да',
  15.             'False': 'Нет' },
  16.         "salary_gross": {
  17.             'False': 'С вычетом налогов',
  18.             'True': 'Без вычета налогов' },
  19.         "salary_currency": {
  20.             "AZN": "Манаты",
  21.             "BYR": "Белорусские рубли",
  22.             "EUR": "Евро",
  23.             "GEL": "Грузинский лари",
  24.             "KGS": "Киргизский сом",
  25.             "KZT": "Тенге",
  26.             "RUR": "Рубли",
  27.             "UAH": "Гривны",
  28.             "USD": "Доллары",
  29.             "UZS": "Узбекский сум" }
  30.     }
  31.     old_dictionary['salary_all'] = ''
  32.     for key, value in old_dictionary.items():
  33.         if key == 'key_skills':
  34.             old_dictionary[key] = ", ".join(value)
  35.         if key == 'experience_id':
  36.             old_dictionary[key] = formatting_dictionary[key][value]
  37.         if key == 'premium':
  38.             old_dictionary[key] = formatting_dictionary[key][value]
  39.         if key == 'salary_from':
  40.             old_dictionary[key] = '{:,}'.format(floor(float(
  41.                 old_dictionary["salary_from"]))).replace(',', ' ')
  42.         if key == 'salary_to':
  43.             old_dictionary[key] = '{:,}'.format(floor(float(
  44.                 old_dictionary["salary_to"]))).replace(',', ' ')
  45.         if key == 'salary_gross':
  46.             old_dictionary[key] = formatting_dictionary[key][value]
  47.         if key == 'salary_currency':
  48.             old_dictionary['salary_all'] = f'{old_dictionary["salary_from"]} - ' \
  49.                                            f'{old_dictionary["salary_to"]} ' \
  50.                                            f'({formatting_dictionary[key][value]}) ' \
  51.                                            f'({old_dictionary["salary_gross"]})'
  52.         if key == 'published_at':
  53.             old_dictionary[key] = '.'.join(reversed(value[0:10].split('-')))
  54.  
  55.     return old_dictionary
  56.  
  57.  
  58. def print_vacancies(dictionary: dict):
  59.     print(f'Название: {dictionary["name"]}\n'
  60.           f'Описание: {dictionary["description"]}\n'
  61.           f'Навыки: {dictionary["key_skills"]}\n'
  62.           f'Опыт работы: {dictionary["experience_id"]}\n'
  63.           f'Премиум-вакансия: {dictionary["premium"]}\n'
  64.           f'Компания: {dictionary["employer_name"]}\n'
  65.           f'Оклад: {dictionary["salary_all"]}\n'
  66.           f'Название региона: {dictionary["area_name"]}\n'
  67.           f'Дата публикации вакансии: {dictionary["published_at"]}\n')
  68.  
  69.  
  70. def csv_filer(headlines: list, raw_list: list):
  71.     index_key_skills = headlines.index('key_skills')
  72.     html_tags = re.compile('<.*?>')
  73.     for line in raw_list:
  74.         try:
  75.             line.remove('')
  76.         except ValueError:
  77.             pass
  78.         for index in range(len(line)):
  79.             if index != index_key_skills:
  80.                 line[index] = ' '.join(re.sub(html_tags, '', line[index])
  81.                                        .strip().split())
  82.             else:
  83.                 line[index] = list(map(lambda x: x.strip(), line[index].split('\n')))
  84.  
  85.         if len(line) == len(headlines):
  86.             dictionary = {headlines[i]: line[i] for i in range(len(headlines))}
  87.             print_vacancies(dictionary=formatter(dictionary))
  88.  
  89.  
  90. def csv_reader(csv_name: str):
  91.     with open(csv_name, encoding='utf-8-sig') as file:
  92.         file_reader = csv.reader(file, delimiter=',')
  93.         csv_filer(headlines=next(file_reader), raw_list=list(file_reader))
  94.  
  95.  
  96. csv_file = input()
  97. csv_reader(csv_file)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement