J'ai un autre programme qui me pose soucis :
Enoncé :
Les lignes du fichier sont organisées afin que chaque mois soit sur une ligne différente. En python, on va lire toutes les lignes ensemble et les stocker directement dans une liste (un élément par ligne).
- Code: Tout sélectionner
fichier = open(input()) #pour ouvrir le fichier
listeLignes = fichier.readlines() # pour créer une liste dont les élements sont des chaînes de caractères de chaque ligne du fichier.
fichier.close() # une fois terminé le travail sur le fichier
Ecrire un programme qui lit un fichier dont le nom sera saisi au clavier et qui affiche la mesure donnée d'un mois donné. Le programme saisit donc 3 données : le nom du fichier, le numéro du mois et le numéro de la mesure dans le mois.
Pour simplifier, les mesures et les mois sont numérotés à partir de 0.
Entrée du programme
Le nom d'un fichier (contenant des floats séparés par des espaces sur une ou plusieurs lignes) suivi de deux entiers.
Sortie du programme
Un flottant (la mesure en question).
Exemples :
Entrée :
- Code: Tout sélectionner
fichier.txt
3 (le numéro du mois)
5 (le numéro de la mesure dans le mois, la 4ème donc puisqu'on commence à 0)
C'est le nom d'un fichier qui contient :
- Code: Tout sélectionner
58.4 59.0 61.1 61.0 58.6 60.7 62.5 62.7 61.4
60.2 61.1 59.4 58.1 59.3 58.1 61.7 58.8
60.7 59.7 58.7 62.9 61.0 58.0
60.2 60.9 58.0 62.3 62.5 59.9 60.1 58.8 61.7 61.3 58.8 58.4 61.8 62.4 58.6 60.3 62.1 62.0 59.7 61.5
58.6 60.7 58.0 62.1 59.9 59.3
Sortie :
59.9
Pour l'instant j'ai réussi à extraire le mois mais là je bloque, il faudrait transformer la ligne du mois en liste.
Ce que j'ai fait :
- Code: Tout sélectionner
fichier = open(input())
mois = int(input())
num = int(input())
listeLignes = fichier.readlines()[mois]
print(listeLignes)
listeLignes=[listeLignes]
print(listeLignes)
fichier.close()
qui affiche :
- Code: Tout sélectionner
fichier.txt
3
3
60.2 60.9 58.0 62.3 62.5 59.9 60.1 58.8 61.7 61.3 58.8 58.4 61.8 62.4 58.6 60.3 62.1 62.0 59.7 61.5
['60.2 60.9 58.0 62.3 62.5 59.9 60.1 58.8 61.7 61.3 58.8 58.4 61.8 62.4 58.6 60.3 62.1 62.0 59.7 61.5\n']
Merci !