Bonjour,
Je suis tout nouveau sur Python.
J'ai écris un module (readFile.py) permettant de lire des fichier contenant des données scientifiques. Ce module est composé de 4 fonctions. Chaque fonction lit un fichier. Lorsqu'on les appelle, elles lisent le fichier et stockent les variables.
Ensuite je charge ce module dans ipython en faisant
j'appelle la fonction et je m'aperçois que le programme principal ne connaît pas les variables. Je me renseigne et je vois qu'il faut déclarer les variables comme globales pour qu'elles soient vues par l'ensemble du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part from readFile import *
J'ai donc essayé trois choses qui ne fonctionnent pas.
Dans le module readFile.py j'ai testé :
- de mettre au tout début du module (en dehors des fonctions)
global var1, var2, ...
def ...
def ...- de mettre au début des fonctions global suivi de la liste des variables à exporter
def read1():
global var1, var2, ...- les deux
global var1, var2, ...
def read1():
global var1, var2, ...
seulement toujours la même erreur lorsque je cherche ensuite à voir la variable :
Je sais que je pourrais passer en entrée le nom des variables dans les fonctions seulement dans chaque fichier il y a une bonne vingtaine de variable à lire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 In [1]: from ReadFile import * scitools.easyviz backend is matplotlib In [2]: readCpu('TEST') Read file TEST_cpu.dat In [3]: nx NameError: name 'nx' is not defined
Avez vous une idée car je ne comprends pas très bien comment python fonctionne avec les variables globales.
Merci d'avance
Partager