使用正则表达式模块“re”遇到的错误

源代码:
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\”。

遇到的错误:
re.error: bad escape \c at position 0
原因:

正则表达式中使用了 \c,但 \c 不是一个有效的转义序列,因此会引发错误。

解决措施:
方法一:
model_dir = re.split("\\checkpoints\\", args.model_path)[0]
即使用"\\"代替"\"

方法二:
model_dir = re.split(r"\\checkpoints\\", args.model_path)[0]
即使用"\\\\"代替"\",同时使用了原始字符串(raw string) r 前缀,以确保正则表达式引擎能够正确解释

注意:本人使用的是Windows系统,如果是Linux系统应该不会出现这个问题。

你可能感兴趣的:(vscode)