import yfinance as yf from datetime import datetime, timedelta def get_closing_price_at_date(stock_symbol, date): # Convertir la date en format Y-m-d formatted_date = datetime.strptime(date, "%d-%m-%Y") start_date = formatted_date end_date = formatted_date + timedelta(days=1) start_date = start_date.strftime("%Y-%m-%d") end_date = end_date.strftime("%Y-%m-%d") # Récupérer les données historiques de l'action stock = yf.Ticker(stock_symbol) historical_data = stock.history(start=start_date, end=end_date) #print (historical_data) # Vérifier si des données sont disponibles pour la date spécifiée if historical_data.empty: print("pas dispo"+date+stock_symbol+"\n") return None # Extraire le prix de clôture à la date donnée closing_price = historical_data['Close'].iloc[0] return closing_price """ fonction qui pour chaque date d'un fichier date, et pour chaque couple(nom:indice) d'un fichier valeur ecrire dans un nouveau fichier qui sappel {nom} un couple date:le reurn de la fonction get_closing_price_at_date(indice,date) """ def ecrireResultats(nom_fichier_dates, nom_fichier_valeurs): with open(nom_fichier_dates, 'r') as fichier_dates: dates = fichier_dates.readlines() # Lire toutes les dates dans une liste with open(nom_fichier_valeurs, 'r') as fichier_valeurs: lignes_valeurs = fichier_valeurs.readlines() # Lire toutes les lignes de valeurs for ligne_valeurs in lignes_valeurs: nom, indice = ligne_valeurs.strip().split(":") for date in dates: date = date.strip() valeur = get_closing_price_at_date(indice, date) nom_fichier_resultats = nom + ".txt" with open(nom_fichier_resultats, 'a') as fichier_resultats: fichier_resultats.write(date + ":" + str(valeur) + "\n") # Exemple d'utilisation ecrireResultats("date.txt", "valeur.txt")