Rechercher plusieurs lignes dans un fichier

Fermé
pierre411 Messages postés 3 Date d'inscription jeudi 26 novembre 2015 Statut Membre Dernière intervention 30 décembre 2015 - 26 nov. 2015 à 14:29
Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 - 12 janv. 2016 à 18:11
Bonjour,

Je débute en Python.
J'ai le début de code pour ouvrir mon fichier, je parviens à extraire une ligne mais pas 2.

Voici ce qui se trouve dans mon fichier :

Nom de l'image : ....
X minimum : 585000.0000
X maximum : 590000.0000
Y minimum : 6565000.0000
Y maximum : 6570000.0000

Je voudrais récupérer X minimum et Y maximum. J'ai le début de code suivant. Seul la première partie fonctionne.

srcFile = open(fichiergeoref,'r')

for line in srcFile:
if line.find("X minimum") >=0:
continue
if line.find("Y maximum") >=0:
print(line)
srcFile.close()

Pourriez vous m'aider.
A voir également:

2 réponses

[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 1 097
Modifié par [Dal] le 26/11/2015 à 17:59
Salut,

Python n'est pas ma tasse de thé, mais il me semble que
string.find(s, sub[, start[, end]])
est obsolète en Python 3... aussi je suppose que tu utilises Python 2.

En tout état de cause, la fonction ne renvoie qu'un index ou -1 en cas d'erreur et pas la valeur que tu cherches à obtenir.

Au lieu de jongler avec des index, tu peux utiliser une regexp, comme ceci pour capturer ce que tu souhaites et valider le format de la ligne analysée par la même occasion :

import re

line = "X minimum : 585000.0000"
match = re.match(r"X minimum\s+:\s+([0-9.]+)", line)
if match:
    print match.group(1)

Voir :
https://docs.python.org/2/library/string.html
https://docs.python.org/2/library/re.html#match-objects

Dal
0
Arm.7.ageddon Messages postés 42 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 26 février 2016 5
12 janv. 2016 à 18:11
Tu n'as que 5 lignes dans ton fichier ? avec uniquement ce que tu indiques ?
0