Python 用字符串中的前斜杠替换反斜杠

Python 用字符串中的前斜杠替换反斜杠,python,string,replace,backslash,rawstring,Python,String,Replace,Backslash,Rawstring,编辑问题: 我正在编写一个python函数,该函数将路径的字符串作为从windows粘贴的副本(因此使用反斜杠),并返回一个带有前斜杠的字符串,python可以使用该字符串作为路径。反斜杠和其他字符的组合会出现问题,如\n、\b。。。 多亏了Coldspeed,我现在有了一个函数,可以实现以下功能: def back2forwardSlash(backSlash_string): return backSlash_string.replace('\\', '/') 仍然不令人满

编辑问题: 我正在编写一个python函数,该函数将路径的字符串作为从windows粘贴的副本(因此使用反斜杠),并返回一个带有前斜杠的字符串,python可以使用该字符串作为路径。反斜杠和其他字符的组合会出现问题,如\n、\b。。。 多亏了Coldspeed,我现在有了一个函数,可以实现以下功能:

def back2forwardSlash(backSlash_string):    
    return backSlash_string.replace('\\', '/')
仍然不令人满意的是,我必须在字符串前面调用函数,并将其作为原始值读取:
fileNamePath=back2forwardSlash(r'C:\Users\Dropbox\netCFD4\b30.137.nc')
这会阻止将变量传递到函数中,而不是粘贴到字符串中。或者至少,我认为我没有解决这个问题的办法。


此外,错误的原因是反斜杠可以作为转义序列的开始,转义序列是一组字符,它们的解释与其表示形式不同。这意味着序列
\b
不是两个单独的字符,而是单个字符
\b
\x08
。因此,您需要向函数传递一个原始字符串:

print(foo(r'C:\Users\Dropbox\netCFD4\b30.137.nc'))

原始字符串将按字面意思处理反斜杠。另一种方法是避开所有的反斜杠。

您是否尝试过
反斜杠字符串。替换(“\\”、“/”)
?尝试以下建议:谢谢COLDSPEED。replace方法做得很好,但是问题实际上只有通过在参数字符串前面使用
r
调用函数才能解决,正如您所建议的那样。这只是部分令人满意,因为我无法传递带有变量的函数,但始终必须手动将字符串粘贴在
r
之后,才能获得原始字符串。至少,我认为我没有解决办法。@Pauli如果你的字符串是这样输入的,那么源代码就有问题了。而且,没有真正的方法使变量成为原始字符串。。。
print(foo(r'C:\Users\Dropbox\netCFD4\b30.137.nc'))