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

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

Post by Guest »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post