main.py
def open_datasheet(file=""): file = open(file, "r", encoding="utf-8") lines = [[text for text in line.split()] for line in file] return lines def get_earnings(parsedList=""): """This method returns the last three year average net income""" for line in range(0, len(parsedData)): for item in range(0, len(parsedData[line])): if "Net" in parsedData[line][item]: if "Income" in parsedData[line][1]: if "(Mil)" in parsedData[line][2]: average = ( int(parsedData[line][3].replace(",", "")) + int(parsedData[line][4].replace(",", "")) + int(parsedData[line][5].replace(",", "")) ) / 3 return int(average) def get_lowest_pb(parsedList=""): """This method returns the lowest historical Price/Book value""" pb_list = [] for line in range(0, len(parsedData)): for item in range(0, len(parsedData[line])): #if "www.nasdaqomxnordic.com/" in parsedData[line][item]: if "Price/Book" in parsedData[line][item]: for x in range(item + 1, item + 6): try: pb_list.append(float(parsedData[line][x])) except: continue min_pb = min(pb_list) return min_pb def create_company(): """This function creates a Company object""" import company new_company = company.Company(companyName=filename, avg_earnings=avg_net_earnings, lowest_pb=lowest_pb, datasheet=open_datasheet(filename)) return new_company filename = input("Text file name:") parsedData = open_datasheet(file=filename) avg_net_earnings = get_earnings(parsedList=parsedData) lowest_pb = get_lowest_pb(parsedList=parsedData) current_company = create_company() print(current_company.company_name, current_company.avg_earnings, current_company.lowest_pb)
company.py
class Company: """The Company() object hold information of a company""" def __init__(self, companyName="NoName", avg_earnings = 0, lowest_pb = 0, datasheet=""): self._companyName = companyName.title()[:-4] self._avg_earnings = avg_earnings self._lowest_pb = lowest_pb self._datasheet = datasheet @property def avg_earnings(self): return self._avg_earnings @property def company_name(self): return self._companyName @property def lowest_pb(self): return self._lowest_pb @property def datasheet(self): return self._datasheet if __name__ == "__main__": print("Company class is run as main!")
No comments:
Post a Comment