Bonjour,

Je voudrais lire un fichier format TECPLOT en utilisant le module RE sur Pyhton.

Mon fichier ressemble à ceci :

TITLE = "Champ"
VARIABLES = "X1" "X2" "X3" "Fn"
ZONE T="Patch_02"
I= 28 J= 48 K= 1 F=POINT
mon programme qui doit lire l'entete est comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def loadHeaderFmt( fich ) :
    titlePat= R.compile('TITLE *= *".*"')          # Recherche d'un titre pour le fichier tecplot
    varPat  = R.compile('VARIABLES *=( *".*")*')   # Search defined variables
    zonePat = R.compile('ZONE')                    # Search Zone beginning
    #strPat  = R.compile('"[^"]*"')                 # Recherche d'une chaine de caractere entre double quotes 
    # ******************************************************************************************************
    IPat = R.compile("[^a-z^A-Z]I *= *[0-9]*")    # Pour rechercher le nombre de noeuds en I
    JPat = R.compile("[^a-z^A-Z]J *= *[0-9]*")    # Pour rechercher le nombre de noeuds en J
    KPat = R.compile("[^a-z^A-Z]K *= *[0-9]*")    # Pour rechercher le nombre de noeuds en K
    strPat  = R.compile('"[^"]*"')                # Recherche d'une chaine de caractere entre double quotes
    numPat  = R.compile(" *[0-9][0-9]*")          # Pour entier un nombre d'une chaine de caractere mixte
 
    # ******************************************************************************************************
    zoneStr = None
    title = ""
    variables = None
    line = None
    dim = []
    while zoneStr == None :
        line = fich.readline()
        titleStr = titlePat.search(line)
        varStr   =   varPat.search(line)
        zoneStr  =  zonePat.search(line)
        ImStr = IPat.search(line)
        JmStr = JPat.search(line)
        KmStr = KPat.search(line)
        if titleStr != None :
            title = eval(strPat.search(titleStr.group(0)).group(0))
        if varStr != None :
            variablesStr = strPat.findall(line)
            variables = []
            for s in variablesStr:
                variables.append(eval(s))
        if zoneStr != None :
 
           if ImStr != None :
              dim[2] = eval(numPat.search(ImStr.group(0)).group(0))
           if JmStr != None :
              dim[1] = eval(numPat.search(JmStr.group(0)).group(0))
           if KmStr != None :
              dim[0] = eval(numPat.search(KmStr.group(0)).group(0))
    return (title,variables, line,dim)
Mon code me retourne bien le titre, les variables et le nom de la zone, par contre en ce qui concerne les dimensions, il me retourne toujours le dim = []

Est ce que vous auriez une idée d'ou ça cloche dans mon code??

M.