Python 错误地将文件扩展名添加到路径字符串
Python erronously adding file extension to path string
我目前正在努力解决以下问题:
我的文件夹结构如下:
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)
可以找到入口点的完整代码here。
正如 jjramsey 所指出的,问题隐藏在 ModelicaGym 库中。
记录器无法创建正确的日志文件,因为模型名称未正确存储在 self.model 变量中。
此错误的来源在于行
self.model_name = model_path.split(os.path.sep)[-1]
由于 os 库无法分隔我的路径字符串
"./resources/customFile.fmu"
改成后
".\resources\customFile.fmu"
一切正常。
再次感谢!
我目前正在努力解决以下问题:
我的文件夹结构如下:
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)
可以找到入口点的完整代码here。
正如 jjramsey 所指出的,问题隐藏在 ModelicaGym 库中。
记录器无法创建正确的日志文件,因为模型名称未正确存储在 self.model 变量中。
此错误的来源在于行
self.model_name = model_path.split(os.path.sep)[-1]
由于 os 库无法分隔我的路径字符串
"./resources/customFile.fmu"
改成后
".\resources\customFile.fmu"
一切正常。
再次感谢!