Python用反斜杠替换正斜杠

新手上路,请多包涵

我有

foo = '/DIR/abc'

我想把它转换成

bar = '\\MYDIR\data\abc'

所以,这就是我在 Python 中所做的:

 >>> foo = '/DIR/abc'
>>> bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
  File "<stdin>", line 1
    bar = foo.replace(r'/DIR/',r'\\MYDIR\data\')
                                                 ^
SyntaxError: EOL while scanning string literal

但是,如果我尝试通过输入 bar = foo.replace(r'/DIR/',r'\\MYDIR\data\\') 来转义最后一个反斜杠,那么我会得到这个怪物:

 >>> bar2
'\\\\MYDIR\\data\\\\abc'

帮助!这让我发疯。

原文由 synaptik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 661
2 个回答

第二个参数应该是一个字符串,而不是一个正则表达式模式:

 foo.replace(r'/DIR/', '\\\\MYDIR\\data\\')

原文由 Explosion Pills 发布,翻译遵循 CC BY-SA 3.0 许可协议

我只是将 r / 以更改正斜杠。

 inv_num = line.replace(r'/', '-')

原文由 Wen-Shan Wendy Chow 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题