在windows系统上跑spert模型时报错:[WinError 123] 文件名、目录名或卷标语法不正确。: 'data\\save\\conll04_train\\2021-12-09_13:01:00.352937'。如下图所示。

一开始以为是盘符的问题,windows的文件路径一般用“\”隔开,linux等其他操作系统的路径则为“/”,修改后仍然报错。查看代码后发现使用了os.path.join,对所有操作系统都适用,不需要修改盘符。
随后尝试将相对路径转换为绝对路径,仍然没用。
猜测是否文件名有问题,尝试创建2021-12-09_13:04:35.610469.txt文件,出现如下问题。

原来是windows对文件命名格式有特殊要求。该模型应该是默认在linux系统上跑,猜测linux对文件名无字符要求。在代码中加入
run_key = str(datetime.datetime.now()).replace(' ', '_').replace(':', '.')
运行成功。
博客内容讲述了在Windows系统上运行spert模型时遇到的文件路径错误问题。作者首先考虑了路径分隔符的问题,但修改后仍无法解决。接着,尝试将相对路径转为绝对路径,问题依然存在。最终发现是Windows对文件命名的特殊要求导致的,因为模型可能默认在Linux系统上运行。通过修改文件命名规则,将时间戳中的冒号替换为下划线,问题得以解决。
2904

被折叠的 条评论
为什么被折叠?



