Advertisement
ma1exe

Untitled

Jun 24th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.65 KB | None | 0 0
  1. import csv
  2. import io
  3. import datetime
  4. from collections import Counter
  5. filename = str(input('Введите полный путь до csv таблицы или ее имя: '))
  6. with io.open(filename, encoding='utf-8') as f:
  7.     readf = csv.reader(f, delimiter=',')
  8.     rows = []
  9.     col_names = []
  10.     for row in readf:
  11.         rows.append(row)
  12.  
  13. rows_new = []
  14.  
  15. print('\nТаблица считана и обработана.')
  16. print('\nСтрок в таблице:', len(rows),'\nС какой начнем?\nВнимание: в нулевой строке содержатся названия колонок, мин. значение для работы скрипта = 1')
  17.  
  18. i = int(input())
  19.  
  20. while (i < len(rows)):
  21.     if rows[i][2] != '':
  22.         if rows[i][8] != '':
  23.             if float(rows[i][2]) > 1 and float(rows[i][8]) <= 15:
  24.                 rows_new.append(rows[i])
  25.                 print(str(i)+'/'+str(len(rows)-1)+' | Строка добавлена!')
  26.             else:
  27.                 print(str(i)+'/'+str(len(rows)-1)+' | Строка не подходит под условия импорта')
  28.         else:
  29.             print(str(i)+'/'+str(len(rows)-1)+' | Ошибка: у товара нет цены и продолжительности')
  30.     else:
  31.         print(str(i)+'/'+str(len(rows)-1)+' | Ошибка: у товара нет цены')
  32.     i += 1
  33.  
  34. print('\nПолучилось строк: ', len(rows_new))
  35. print('\nРазбираемся со столбцом "Технологии"...\n')
  36.  
  37. vendors_t = []
  38. vendors = []
  39. for row in rows_new:
  40.     vendors_t.append(row[1])
  41. counter = Counter(vendors_t)
  42.  
  43. for t in counter:
  44.     vendors.append(t)
  45.  
  46. el = []
  47. el_c = []
  48.  
  49. for r in range(len(vendors)):
  50.     el.append([])
  51.     for row in rows_new:
  52.         if row[1] == vendors[r]:
  53.             el[r].append(row)
  54.     el_c.append(len(el[r]))
  55.  
  56. d = 0
  57.  
  58. for i in range(len(el_c)):
  59.     d = 0
  60.     if el_c[i] > 1:
  61.         for j in range(el_c[i]):
  62.             if el[i][j][10] == '': d += 1
  63.         if d < el_c[i]:
  64.             for j in range(el_c[i]):
  65.                 if el[i][j][10] == '': el[i][j][10] = 'Основная группа'
  66.  
  67. rows[0][0] = 'Код'
  68.  
  69. with open('output_'+datetime.datetime.now().strftime("%Y%m%d-%H%M%S")+'.csv', 'w', newline='', encoding='utf-8') as csv_file:
  70.     writer = csv.writer(csv_file, delimiter=',', quoting=csv.QUOTE_ALL)
  71.     writer.writerow(rows[0])
  72.     for i in range(len(el_c)):
  73.         for j in range(el_c[i]):
  74.             writer.writerow(el[i][j])
  75.  
  76. print('Готово! Выходной файл сохранен как output_'+datetime.datetime.now().strftime("%Y%m%d-%H%M%S")+'.csv')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement