编辑问题: 我正在编写一个python函数,它将路径的字符串作为从windows复制粘贴(因此使用反斜杠)并返回一个带有forwardslashes的字符串,可以被python用作路径。问题出现在反冲和其他字符的组合中,例如\ n,\ b ... 感谢Coldspeed,我现在有一个功能可以解决这个问题:
def back2forwardSlash(backSlash_string):
return backSlash_string.replace('\\', '/')
仍然不能令人满意的是我必须在字符串之前使用r
调用该函数将其读取为raw:fileNamePath = back2forwardSlash(r'C:\Users\Dropbox\netCFD4\b30.137.nc')
这可以防止将变量传递给函数,而不是粘贴到字符串中。或者至少,我认为我没有解决方案。
答案 0 :(得分:1)
The pythonic way of doing this would be using string.replace
def foo(string):
return string.replace('\\', '/')
此外,您的错误的原因是反斜杠可以作为转义序列的开始,转义序列是一组字符,其解释与其表示不同。这意味着序列\b
不是两个单独的字符,而是单个字符\b
或\x08
。因此,您希望将原始字符串传递给您的函数:
print(foo(r'C:\Users\Dropbox\netCFD4\b30.137.nc'))
原始字符串将逐字处理反斜杠。另一种方法是逃避所有的反斜杠。