Rechercher plusieurs lignes dans un fichier
pierre411
Messages postés
3
Statut
Membre
-
Arm.7.ageddon Messages postés 42 Statut Membre -
Arm.7.ageddon Messages postés 42 Statut Membre -
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.
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.
2 réponses
-
Salut,
Python n'est pas ma tasse de thé, mais il me semble questring.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 -
Tu n'as que 5 lignes dans ton fichier ? avec uniquement ce que tu indiques ?