LectureDonne.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import yfinance as yf
  2. from datetime import datetime, timedelta
  3. def get_closing_price_at_date(stock_symbol, date):
  4. # Convertir la date en format Y-m-d
  5. formatted_date = datetime.strptime(date, "%d-%m-%Y")
  6. start_date = formatted_date
  7. end_date = formatted_date + timedelta(days=1)
  8. start_date = start_date.strftime("%Y-%m-%d")
  9. end_date = end_date.strftime("%Y-%m-%d")
  10. # Récupérer les données historiques de l'action
  11. stock = yf.Ticker(stock_symbol)
  12. historical_data = stock.history(start=start_date, end=end_date)
  13. #print (historical_data)
  14. # Vérifier si des données sont disponibles pour la date spécifiée
  15. if historical_data.empty:
  16. print("pas dispo"+date+stock_symbol+"\n")
  17. return None
  18. # Extraire le prix de clôture à la date donnée
  19. closing_price = historical_data['Close'].iloc[0]
  20. return closing_price
  21. """
  22. fonction qui pour chaque date d'un fichier date, et pour chaque couple(nom:indice) d'un fichier valeur
  23. ecrire dans un nouveau fichier qui sappel {nom} un couple date:le reurn de la fonction get_closing_price_at_date(indice,date)
  24. """
  25. def ecrireResultats(nom_fichier_dates, nom_fichier_valeurs):
  26. with open(nom_fichier_dates, 'r') as fichier_dates:
  27. dates = fichier_dates.readlines() # Lire toutes les dates dans une liste
  28. with open(nom_fichier_valeurs, 'r') as fichier_valeurs:
  29. lignes_valeurs = fichier_valeurs.readlines() # Lire toutes les lignes de valeurs
  30. for ligne_valeurs in lignes_valeurs:
  31. nom, indice = ligne_valeurs.strip().split(":")
  32. for date in dates:
  33. date = date.strip()
  34. valeur = get_closing_price_at_date(indice, date)
  35. nom_fichier_resultats = nom + ".txt"
  36. with open(nom_fichier_resultats, 'a') as fichier_resultats:
  37. fichier_resultats.write(date + ":" + str(valeur) + "\n")
  38. # Exemple d'utilisation
  39. ecrireResultats("date.txt", "valeur.txt")