Python: Der Versuch, exec(), pathlib und __file__ in Kombination zu verwenden, schlägt fehl

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Python: Der Versuch, exec(), pathlib und __file__ in Kombination zu verwenden, schlägt fehl

by Guest » 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:

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(), '?')
Das Hauptproblem etwas einfacher:

Code: Select all

print(exec(f"pathlib.Path('{__file__}')", {'pathlib': pathlib}, {'__file__': __file__})) # --> None
Mein Ziel ist eine Zeichenfolge (

Code: Select all

EXEC_STRING
), 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?

Top