我要将正斜杠格式的unix文件路径转换为反斜杠格式的windows文件路径。我尝试了os.path.join()和os.path.normpath()两种方法,但它们似乎都在结果中添加了双反斜杠。例如,如果我使用os.path.normpath('static/css/reset.css')
,结果是'static\\css\\reset.css'
,而不是static\css\reset.css
。而'static/css/reset.css'.replace('/','\\')
给出的结果与os.path.normpath
相同。有什么方法可以只得到一个反斜杠分隔的字符串格式吗?
顺便说一下,我在64位Windows7上使用Python2.7。
显示
static\\css\\reset.css
,因为“\\”表示“\”。如果使用此文件路径,它将被解释为“static\css\reset.css”。作为交互shell中的签入
给出:
“\\”将显示为单个字符。
'static\\css\\reset.css'
是字符串r'static\css\reset.css'
的表示。双反斜杠表示字符串中反斜杠的转义,它的意思是“对下一个字符做一些特殊的事情”,这里不需要这样做。
我将进一步阐述埃尔扎的正确回答和你的评论。在前面的回答中,可能会让您感到困惑和不安的是,在源代码中提供的Python字符串,以及Python控制台和ide向您显示的Python字符串,开发人员和字符串的打印方式(即显示给用户)之间存在差异:
我认为您得到“系统找不到指定的路径”的原因是,您手动复制到剪贴板并从Python控制台/IDE粘贴一些内容(您的路径在您的问题中以引号显示也支持这一点)。
更让人困惑的是,你有时会使用单引号。只有一些斜线字符组合具有特殊含义(请参见Python documentation),例如
'\n'
表示新行,而其他的则没有,例如'\s'
,它只打印为\s
。另外,转义字符的原因是,对于Python/计算机来说,它们是向程序员传达文本中有哪些特殊字符的方便方式。例如,这样,在
'\t'
(制表符)和' '
(一些空格)之间就没有歧义,实际上可以看到不可打印的/一些控制字符,等等我将进一步阐述埃尔扎的正确回答和你的评论。在前面的回答中,可能会让您感到困惑和不安的是,在源代码中提供的Python字符串,以及Python控制台和ide向您显示的Python字符串,开发人员和字符串的打印方式(即向用户显示)之间存在差异:
我认为您得到“系统找不到指定的路径”的原因是,您手动复制到剪贴板并从Python控制台/IDE粘贴一些内容(您的路径在您的问题中以引号显示也支持这一点)。
更让人困惑的是,你有时会使用单引号。只有一些斜线字符组合具有特殊含义(请参见Python documentation),例如
'\n'
表示新行,而其他的则没有,例如'\s'
,它只打印为\s
。另外,转义字符的原因是,对于Python/计算机来说,它们是向程序员传达文本中有哪些特殊字符的方便方式。例如,这样,在
'\t'
(制表符)和' '
(一些空格)之间就没有歧义,实际上可以看到不可打印的/一些控制字符,等等相关问题 更多 >
编程相关推荐