如何避免Python识别路径中的转义字符并解决路径执行报错问题
问题修复方案
问题根源
你遇到的报错本质是两个问题叠加导致的:
- 路径拼接的转义逻辑错误:普通字符串中
\是转义符,会和后续字符组合成转义序列;而Python的原始字符串(r前缀)不允许以单个\结尾,末尾的\会转义后面的闭合引号,导致你定义的路径字符串没有正常闭合,拼接逻辑完全失效。 os.system的解析规则问题:os.system会把传入的内容直接交给系统cmd解析,如果路径没有用双引号包裹,cmd会把路径按分隔符拆分成多个部分,把首个识别到的片段(你的案例里就是shortcuts)当成独立命令执行,自然会报命令不存在的错误。
修复方案
最优方案(Windows下适配快捷方式调用)
直接用Windows专属的os.startfile打开快捷方式,配合os.path.join自动处理路径分隔符,完全规避转义问题:
import os filename = "cp.lnk" # 自动拼接路径,不用手动处理反斜杠 lnk = os.path.join("shortcuts", "cmd_shortcuts", filename) os.startfile(lnk)
如果你需要保留os.system写法
给最终路径外层包裹双引号,避免cmd拆分路径,同时用双反斜杠或者正斜杠写路径即可:
import os filename = "cp.lnk" # 路径外层加双引号,用正斜杠代替反斜杠也能被Windows识别 lnk = f'"shortcuts/cmd_shortcuts/{filename}"' os.system(lnk)
内容的提问来源于stack exchange,提问作者Elliot Harrell
相关产品推荐
相关产品推荐

