在python中将反斜杠转换为正斜杠
嗨,我已阅读有关将向后转换为正斜杠的文章。 但sol是使用原始字符串。
但问题在于我的情况是:
我将动态获取文件路径变量var =’C:\ dummy_folder \ a.txt’在这种情况下,我需要将其转换为正斜杠。 但由于’\ a’,我无法转换为正斜杠
如何转换它? 或者我应该如何将此字符串更改为原始字符串,以便我可以将其更改为正斜杠
不要这样做。 只需使用os.path并让它处理所有事情。 您不应该显式设置向前或向后斜杠。
>>> var=r'C:\dummy_folder\a.txt' >>> var.replace('\\', '/') 'C:/dummy_folder/a.txt'
但是,不要。 只需使用os.path并开心!
还有os.path.normpath (),它根据本地操作系统转换反斜杠和斜杠。 有关详细用法信息,请参阅此处 。 你会这样使用它:
>>> string = r'C:/dummy_folder/a.txt' >>> os.path.normpath(string) 'C:\dummy_folder\a.txt'
处理路径只是一个字符串可能会让你陷入麻烦。 如果您正在处理的路径是用户输入或者可能以不可预测的方式变化,则更多。
不同的OS有不同的方式来表达给定文件的路径,并且每种现代编程语言都有自己的方法来处理路径和文件系统引用。 当然Python和Ruby有它:
- Python: os.path
- Ruby: File和FileUtils
如果你真的需要处理字符串:
- Python:string.replace
- Ruby:string.gsub
原始字符串用于字符串文字(直接写在源文件中),这似乎不是这里的情况。 在任何情况下,正斜杠都不是特殊字符 – 它们可以毫无问题地嵌入到常规字符串中。 它的反斜杠通常在字符串中具有其他含义,需要“转义”以便将它们解释为文字反斜杠。
用正斜杠替换反斜杠:
# Python: string = r'C:\dummy_folder\a.txt' string = string.replace('\\', '/') # Ruby: string = 'C:\\dummy_folder\\a.txt' string = string.gsub('\\', '/')
>>> 'C:\\dummy_folder\\a.txt'.replace('\\', '/') 'C:/dummy_folder/a.txt'
在字符串文字中,您需要转义\
字符。