Ich habe eine Textdatei mit Parametern für meinen Code, und ich möchte, dass diese Textdatei von meinem Python-Modul gelesen wird, wenn ich das neu lade Modul (oder führen Sie eine Funktion innerhalb). Die Idee ist, dass auf diese Weise jede Person, die den Code verwendet, ihre eigene Parameterdatei haben kann.Verwendung von imp.reload() und open(): Erzwinge das erneute Lesen einer Datei
Hier ist ein sehr vereinfachtes Beispiel für eine Textdatei, parameter.txt, mit zwei Linien:
--------- --------- parameter.txt
Redshift [zred]:
6
Und der Anfang des Codes:
--------- --------- test.py
import re
import linecache as lc
parameter = open('parameter.txt','r')
for i,line in enumerate(parameter):
if line.find('[zred]') >= 0:
zred = float(re.sub('\n','',lc.getline('parameter.txt',i+2)))
print(zred)
'Import-Test als t' gibt 6,0
Nun, wenn ich die 6 in parameter.txt zu einem 8 ändern:
'reload (t)' noch 6.0 gibt!
Wie kann ich den 'Öffnen'-Befehl erzwingen, wenn ich das Modul neu lade?
Sind auf Python 3? Ich denke, dass 'imp.reload()' wahrscheinlich nicht das tut, was du denkst. Die 3.5 Dokumentation gibt: "* Veraltet seit Version 3.4: Verwenden Sie stattdessen importlib.reload()." – cdarke
oh thx, nein, ich bin am 2.7 – Karen