Python windows路径斜杠

sar*_*jit 13 python

我在python脚本中使用目录路径面临一个非常基本的问题.当我从Windows资源管理器复制路径时,它使用反斜杠作为路径分隔符导致问题.

>>> x
'D:\testfolder'
>>> print x
D:      estfolder
>>> print os.path.normpath(x)
D:      estfolder
>>> print os.path.abspath(x)
D:\     estfolder
>>> print x.replace('\\','/')
D:      estfolder
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题.

mip*_*adi 13

Python将\t字符串中的a 解释为制表符; 因此,正如您所注意到的那样,"D:\testfolder"将在:和之间打印出一个标签e.如果你想要一个实际的反斜杠,你需要通过输入反斜杠来逃避反斜杠\\:

>>> x = "D:\\testfolder"
>>> print x
D:\testfolder
Run Code Online (Sandbox Code Playgroud)

但是,对于跨平台兼容性,您应该使用os.path.join.我认为Windows上的Python也会自动/正确处理正斜杠().

  • 只使用正斜杠将在windows下工作 - "os.path.join()`显然是最强大的解决方案. (10认同)
  • 或者,您可以使用[原始字符串文字](http://docs.python.org/2/reference/lexical_analysis.html#string-literals)通过为`r`添加前缀,以便不解释转义序列,例如` R "d:\ testfolder"`. (9认同)
  • @AdamRosenfield原始字符串不适用于Windows路径.https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-%E2%80%94-backslashes-in-windows-filenames/ (2认同)