2015-10-21 24 views
2

我正在使用os.path.normpath,并且在反斜杠后面有数字时值会更改。直接在反斜杠后面更改数值os.path.normpath(字符串)

fileString = os.path.normpath("server:\Projects\05 Project Name\Data\20151021\Master.xlsx") 
print fileString 

返回:服务器:\项目\项目\ Data51021 \ MASTER_LIST.XLSX

注意 '\ 05' 消失, '\ 20' 变成。

为什么会发生这种情况,我该如何解决?

+0

使用'R“字符串”'或逃避与你的所有的反斜线'“\\”' –

回答

3

解决这个最简单的方法是使用原始字符串字面量:

fileString = os.path.normpath(r"server:\Projects\05 Project Name\Data\20151021\Master.xlsx") 
#       ^

反斜杠字符表示常规字符串中的转义序列。

解决这个问题的另一种方法是要么使用正斜杠作为路径分隔符,或双反斜线:

"server:/Projects/05 Project Name/Data/20151021/Master.xlsx" 

"server:\\Projects\\05 Project Name\\Data\\20151021\\Master.xlsx"