Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.14 KB | None | 0 0
  1. import os
  2. import csv
  3.  
  4. csv_filename = "qwerty.csv"
  5.  
  6.  
  7. class CarBase():
  8.     def __init__(self, car_type, brand, photo_file_name, carrying):
  9.         self.car_type = car_type
  10.         self.brand = brand
  11.         # print(photo_file_name.split(".")[-1])
  12.         # print([".jpg", ".jpeg", ".png", ".gif"][2])
  13.         # if photo_file_name.split(".")[-1] in ["jpg", "jpeg", "png", "gif"]:
  14.         self.photo_file_name = photo_file_name
  15.         # else:
  16.         # print("error")
  17.         self.carrying = float(carrying)
  18.  
  19.     def get_photo_file_ext(self):
  20.         return os.path.splitext(self.photo_file_name)[1]
  21.  
  22.  
  23. class Car(CarBase):
  24.     def __init__(self, brand, photo_file_name, carrying, passenger_seats_count, car_type="car", ):
  25.         super().__init__(car_type, brand, photo_file_name, carrying)
  26.         self.passenger_seats_count = int(passenger_seats_count)
  27.  
  28.  
  29. class Truck(CarBase):
  30.     def __init__(self, brand, photo_file_name, carrying, body_whl, car_type="truck"):
  31.         super().__init__(car_type, brand, photo_file_name, carrying)
  32.         if (len(body_whl.split("x")) < 4):
  33.             try:
  34.                 body_whl = [float(i) for i in body_whl.split("x")]
  35.                 self.body_length = body_whl[0]
  36.                 self.body_width = body_whl[1]
  37.                 self.body_height = body_whl[2]
  38.                 self.body_whl = body_whl
  39.             except ValueError:
  40.                 self.body_length = 0.0
  41.                 self.body_width = 0.0
  42.                 self.body_height = 0.0
  43.         else:
  44.             self.body_length = 0.0
  45.             self.body_width = 0.0
  46.             self.body_height = 0.0
  47.  
  48.     def get_body_volume(self):
  49.         return self.body_width * self.body_height * self.body_length
  50.  
  51.  
  52. class SpecMachine(CarBase):
  53.     def __init__(self, brand, photo_file_name, carrying, extra, car_type="spec_machine"):
  54.         super().__init__(car_type, brand, photo_file_name, carrying)
  55.         self.extra = extra
  56.  
  57.  
  58. def get_car_list(csv_filename):
  59.     car_list = []
  60.     try:
  61.         with open(csv_filename) as csv_fd:
  62.             reader = csv.reader(csv_fd, delimiter=';')
  63.             next(reader)  # пропускаем заголовок
  64.             for row in reader:
  65.                 # try:
  66.                 # print(row[0])
  67.                 # for i in row:
  68.                 #     print(i)
  69.                 if row[0] == "car":
  70.                     l = Car(row[1], row[3], row[5], row[2], row[0])
  71.                     car_list.append(l)
  72.                 elif row[0] == "truck":
  73.                     l = Truck(row[1], row[3], row[5], row[4], row[0])
  74.                     car_list.append(l)
  75.                 elif row[0] == "spec_machine":
  76.                     l = SpecMachine(row[1], row[3], row[5], row[6], row[0])
  77.                     car_list.append(l)
  78.             # except IndexError:
  79.             # continue
  80.  
  81.         return car_list
  82.     except ValueError:
  83.         return car_list
  84.  
  85.  
  86. #
  87. # # # g = Truck()
  88. # honda = Truck("honda", "f.png", 1, "2.4x2.3x2")
  89. # print(honda.body_width)
  90. # # # honda.brand = "qwerty"
  91. # # # print(honda.get_body_volume())
  92. l = get_car_list("qwerty.csv")
  93. for i in l:
  94.     print(i)
  95. # print(l[2].body_width)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement