Python: Der Versuch, exec(), pathlib und __file__ in Kombination zu verwenden, schlägt fehl
Posted: 04 Jan 2025, 04:04
Ich versuche, die Variable __file__ innerhalb einer Klasse mit exec() und pathlib in Python 3.11.2 zu verwenden...was mir bisher nicht gelungen ist. Die Antwort auf meine Versuche war immer „Keine“ oder eine Fehlermeldung.
Der Beispielcode, den ich auszuführen versuche:
Das Hauptproblem etwas einfacher:
Mein Ziel ist eine Zeichenfolge (), der als globale Klassenvariable angegeben werden kann.
Nach einiger Zeit des Ausprobierens gehen mir jetzt die Ideen aus, wie ich es zum Laufen bringen könnte.
Irgendeine bessere(!) Idee?
Der Beispielcode, den ich auszuführen versuche:
Code: Select all
import pathlib
class Exec_and_Path_problem:
EXEC_STRING = "pathlib.Path(__file__).with_name(filename)"
def __init__(self, filename):
self.filename = filename
def the_full_filepath(self):
return exec(Exec_and_Path_problem.EXEC_STRING, \
{'pathlib': pathlib, '__file__': __file__}, {'filename': self.filename})
where_is = Exec_and_Path_problem('myfile.txt')
print(where_is.the_full_filepath(), '?')
Code: Select all
print(exec(f"pathlib.Path('{__file__}')", {'pathlib': pathlib}, {'__file__': __file__})) # --> None
Code: Select all
EXEC_STRING
Nach einiger Zeit des Ausprobierens gehen mir jetzt die Ideen aus, wie ich es zum Laufen bringen könnte.
Irgendeine bessere(!) Idee?