用字符串

时间:2017-09-19 08:33:04

标签: python string replace backslash rawstring

编辑问题: 我正在编写一个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')这可以防止将变量传递给函数,而不是粘贴到字符串中。或者至少,我认为我没有解决方案。

1 个答案:

答案 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'))

原始字符串将逐字处理反斜杠。另一种方法是逃避所有的反斜杠。