2012-10-18 108 views
0

当设置字符串为Windows Python中的文件路径,它需要被格式化为:Windows文件路径中的反斜杠?

C:\\Users\\ 

还是不逃逸无法在Windows应用?我的脚本目前在线import os处给我类似“非ASCII字符”的东西,所以我不能真正测试这个。

+0

你可以只用向前join()功能斜杠,而不是 –

回答

2

简短的回答:使用正斜杠,而不是由gnibbler建议。

在使用原始字符串:

使用原始字符串通常工作得很好,但你仍必须注意的是r"\""转义字符quoute。也就是说,原始字符串不是绝对原始的,这就是为什么你不能在反斜杠(或任何奇数个反斜杠)在字符串末尾使用'\'(反斜杠将转义下面的引号字符)。

In [9]: a=r'\\' 

In [10]: b=r'\\\' 
    File "<ipython-input-10-9f86439e68a3>", line 1 
    b=r'\\\' 
      ^
SyntaxError: EOL while scanning string literal 


In [11]: a 
Out[11]: '\\\\' 
1

尝试增加一个 “R”,做如下:

path = r"C:\mypaht\morepaht\myfie.file" 
+2

不会对问题陈述的工作。尝试r“C:\ Users \” – Abhijit

+0

适用于我我认为:f = open(“C:\ a \ a.txt”) 回溯(最近呼叫最后): 文件“”,第1行 IOError:[Errno 22] invalid mode('r')or filename:'C:\ x07 \ x07.txt' f = open(r“C:\ a \ a.txt”) – Netwave

+3

@DanielSanchez,raw字符串不能以'\'结尾 –

1

您不应该这样构建文件路径。它不便携和容易出错。

使用来自os.path

import os.path 
path = os.path.join('C:', 'Users', 'name') 
+0

这是否自动在Windows上使用反斜杠,并在每个其他操作系统上缩减? – tkbx

+0

@tkbx是的,这是使用'os.path'模块的关键。 – Ber

相关问题