Python: попытка использовать exec(), pathlib и __file__ в сочетании не удаласьPython

Программы на Python
Ответить
Anonymous
 Python: попытка использовать exec(), pathlib и __file__ в сочетании не удалась

Сообщение Anonymous »

Я пытаюсь использовать переменную __file__ в Class с exec() и pathlib в Python 3.11.2...чего мне пока сделать не удалось. Ответ на мои попытки всегда был «Нет» или сообщение об ошибке.
Пример кода, который я пытаюсь запустить:

Код: Выделить всё

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(), '?')
Основная проблема немного проще:

Код: Выделить всё

print(exec(f"pathlib.Path('{__file__}')", {'pathlib': pathlib}, {'__file__': __file__})) # --> None
Моя цель — строка (

Код: Выделить всё

EXEC_STRING
), которую можно указать как глобальную переменную класса.
После некоторых попыток у меня закончились идеи, как заставить это работать.
Есть идея получше(!)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»