Python ошибочно добавляет расширение файла в строку пути
В настоящее время я борюсь со следующей проблемой:
Моя структура папок выглядит так:
master
- resources
customFile.fmu
fileCallingFMU.py
При выполнении fileCallingFMU.py я передаю строку пути, например
path = "./resources/customFile.fmu"
Мой сценарий содержит суперфункцию, в которую я передаю переменную пути. Но каждый раз, когда я выполняю сценарий, он срабатывает с исключением:
Exception has occurred: FileNotFoundError
[Errno 2] No such file or directory: b'2021-11-16_./resources/customFile.fmu.txt'
File "[projectFolder]\fileCallingFMU.py", line 219, in __init__
super().__init__(path, config, log_level)
File "[projectFolder]\fileCallingFMU.py", line 86, in <module>
env = gym.make(env_name)
Мой настоятельный вопрос сейчас следующий:
Почему и как Python управляет переменной пути с префиксом даты и .txt в качестве расширения файла ?!
Надеюсь, кто-нибудь сможет просветить меня по этому поводу ...
РЕДАКТИРОВАТЬ
Я пытаюсь запустить пример ModelicaGym .
Мой fileCallingFMU.py содержит следующий код:
path = "./resources/customFile.fmu"
env_entry_point = 'cart_pole_env:JModelicaCSCartPoleEnv'
config = {
'path': path,
'm_cart': m_cart,
'm_pole': m_pole,
'theta_0': theta_0,
'theta_dot_0': theta_dot_0,
'time_step': time_step,
'positive_reward': positive_reward,
'negative_reward': negative_reward,
'force': force,
'log_level': log_level
}
from gym.envs.registration import register
env_name = env_name
register(
id=env_name,
entry_point=env_entry_point,
kwargs=config
)
env = gym.make(env_name)
Полный код для точки входа можно найти здесь .
1 ответ
Как указал user1643973 , проблема была скрыта в библиотеке ModelicaGym.
Регистратору не удалось создать правильный файл журнала, поскольку имя модели не было должным образом сохранено в переменной self.model.
Источник этой ошибки лежал в строке
self.model_name = model_path.split(os.path.sep)[-1]
из-за того, что библиотека os не смогла разделить мою строку пути
"./resources/customFile.fmu"
После изменения его на
".\\resources\\customFile.fmu"
все работает как положено.
Спасибо еще раз!