-2

已编辑的问题:我正在编写一个 python 函数,它将路径的字符串作为从 Windows 复制粘贴的字符串(因此带有反斜杠)并返回一个带有正斜杠的字符串,python 可以将其用作路径。问题出现在反斜杠和其他字符的组合中,如 \n、\b... 多亏了 Coldspeed,我现在有了一个可以解决问题的函数:

def back2forwardSlash(backSlash_string):    
    return backSlash_string.replace('\\', '/')

仍然令人不满意的是,我必须r在字符串之前调用函数才能将其读取为原始数据:fileNamePath = back2forwardSlash(r'C:\Users\Dropbox\netCFD4\b30.137.nc')这可以防止将变量传递给函数,而不是粘贴到字符串中。或者至少,我认为我没有解决方案。

4

1 回答 1

1

这样做的pythonic方式是使用string.replace.

def foo(string):
    return string.replace('\\', '/')

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

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

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

于 2017-09-19T08:37:16.397 回答