源代码:
python
model_dir = re.split("\checkpoints\", args.model_path)[0]
上面的代码中,我想要将args.model_path中checkpoints之前的部分提取出来,比如args.model_path="D:\Vscode\GitHub_Code\TPRO-main\work_dirs\luad\classification\checkpoints\mit_b0.pth",则model_dir="D:\Vscode\GitHub_Code\TPRO-main\work_dirs\luad\classification\"。
遇到的错误:
python
re.error: bad escape \c at position 0
原因:
正则表达式中使用了 \c
,但 \c
不是一个有效的转义序列,因此会引发错误。
解决措施:
python
方法一:
model_dir = re.split("\\checkpoints\\", args.model_path)[0]
即使用"\\"代替"\"
方法二:
model_dir = re.split(r"\\checkpoints\\", args.model_path)[0]
即使用"\\\\"代替"\",同时使用了原始字符串(raw string) r 前缀,以确保正则表达式引擎能够正确解释
注意:本人使用的是Windows系统,如果是Linux系统应该不会出现这个问题。