> On May 25, 2020, at 11:25 AM, MRAB <pyt...@mrabarnett.plus.com 
> <mailto:pyt...@mrabarnett.plus.com>> wrote:
> 
> On 2020-05-25 19:00, Ciarán Hudson wrote:
>> Hi,
>> In the code below, which is an exercise I'm doing in class inheritance, 
>> almost everything is working except outputting my results, which as the 
>> function stock_count, to a csv.
>> stock_count is working in the code.
>> And I'm able to open and close the csv called cars, but the stock_count 
>> output is not being written to the file.
>> Any suggestions?
> [snip]
>>     def stock_count(self):
>>         print('petrol cars in stock ' + str(len(self.petrol_cars)))
>>         print('electric cars in stock ' + str(len(self.electric_cars)))
>>         print('diesel cars in stock ' + str(len(self.diesel_cars)))
>>         print('hybrid cars in stock ' + str(len(self.hybrid_cars)))
>>              def process_rental(self):
>>         answer = input('would you like to rent a car? y/n')
>>         if answer == 'y':
>>             self.stock_count()
>>             answer = input('what type would you like? p/e/d/h')
>>             amount = int(input('how many would you like?'))
>>             if answer == 'p':
>>                 self.rent(self.petrol_cars, amount)
>>             if answer == 'd':
>>                 self.rent(self.diesel_cars, amount)
>>             if answer == 'h':
>>                 self.rent(self.hybrid_cars, amount)
>>             else:
>>                 self.rent(self.electric_cars, amount)
>>         self.stock_count()
>>                  file = open("cars.csv","w")
>>         file.write(str(self.stock_count()))
>>         file.close()
>>         
> In 'stock_count' you're telling it to print to the screen. Nowhere in that 
> function are you telling it to write to a file.

More specifically, your main code calls the dealership.process_rental method.  
That method calls self.stock_count() which writes to the screen. 

Then, you are attempting to write the same information to a file.  Your code 
successfully opens a file, but your next line:
file.write(str(self.stock_count()))
tries to take the output of that self.sock_count() and write that to the file.  
Your self.stock_count does not return anything, so it returns the special 
value: None.  So, the file is created, and the only thing written to the file 
is None.

Since this is a homework assignment, I won't show you how to do it (I am a 
teacher).  But you need to format the information that you want to write as a 
string and write that to a file.


-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to