2015-04-17 6 views
0

J'ai un script python 'main.py' qui appelle un autre script python appelé 'getconf.py' qui lit à partir d'un fichier 'configuration.txt'. Voici ce qu'il ressemble à:Le script Python ne parvient pas à lire un fichier

if __name__ == "__main__": 
     execfile("forprolog.py") # this creates configuration.txt 
     execfile("getconf.py") 

Lorsque getconf.py est appelé via main.py il voit configuration.txt en tant que fichier vide et ne parvient pas à lire la chaîne de celle-ci.

Voici comment je l'ai lu à partir d'un fichier:

f1 = open("configuration.txt") 
conf = f1.read() #this string appears to be empty 

print f1 retours <open file 'D:\\DIPLOMA\\PLANNER\\Exe\\configuration.txt', mode 'r' at 0x01A080D0>

print f1.read() retourne une chaîne vide Je soupçonne que la raison de l'échec est que le fichier est en cours d'écriture immédiatement avant d'appeler getconf.py. Si je cours main.py quand configuration.txt est déjà là ça marche. L'ajout d'un délai entre les actions ne résout pas le problème. J'apprécierais toute aide!

+1

Où votre fichier est-il stocké par rapport à 'getconf.py'? Est-ce dans le même répertoire? Sinon, utilisez le module [os] (https://docs.python.org/3.4/library/os.path.html) pour construire le chemin. – mihai

+0

Essayez de fournir un chemin absolu. – srekcahrai

+0

Les trois fichiers se trouvent dans le même répertoire. Le chemin absolu ne semble pas aider. –

Répondre

0

J'ai trouvé mon problème, c'était dû au fait que je n'ai pas fermé le fichier dans lequel j'écrivais. Merci à tous ceux qui ont essayé de m'aider.