Python窗口路径斜杠

Python窗口路径斜杠,python,Python,在python脚本中使用目录路径时,我面临一个非常基本的问题。当我从windows资源管理器复制路径时,它使用反斜杠作为路径分隔符,这导致了问题 >>> x 'D:\testfolder' >>> print x D: estfolder >>> print os.path.normpath(x) D: estfolder >>> print os.path.abspath(x) D:\ estf

在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

有人能帮我解决这个问题吗。

Python将字符串中的
\t
解释为制表符;因此,
“D:\testfolder”
将在
e
之间打印,正如您所注意到的。如果需要实际的反斜杠,则需要以
\\
的形式输入反斜杠:

>>> x = "D:\\testfolder"
>>> print x
D:\testfolder

但是,为了实现跨平台兼容性,您可能应该使用。我认为Windows上的Python也会自动正确地处理正向斜杠(
/
)。

所有操作系统都能理解正向斜杠,但Windows上的
normpath
确实使用了
\`。我个人认为,使用
path`方法组合/管理路径,然后最终将路径从\`替换为/`是最简单的方法,以便在整个系统中保持一致。不确定这是否回答了您的问题?您可以在这个字符串之前添加一个r,例如,x=r'D:\testfolder',x将是“D:\testfolder”。在字符串之前添加“r”表明此字符串是原始字符串。在windows-
os.path.join()
下仅使用前斜杠显然是最有效的解决方案。或者,您可以通过在
r
前面加前缀来使用a,以便不解释转义序列,例如
r“D:\testfolder”
@AdamRosenfield原始字符串不适用于windows路径。原始字符串并不总是适用于windows路径。从链接中,只要不以\结尾,原始字符串就可以工作。或者,os.path.NormalPath()和os.path.join()组合使用,如果一致使用,也可以工作。