Ian*_*Ian 5 python windows filepath
我运行这段代码:
#!/usr/bin/python coding=utf8
# test.py = to demo fault
def loadFile(path):
f = open(path,'r')
text = f.read()
return text
if __name__ == '__main__':
path = 'D:\work\Kindle\srcs\test1.html'
document = loadFile(path)
print len(document)
Run Code Online (Sandbox Code Playgroud)
它给了我一个引用
D:\work\Kindle\Tests>python.exe test.py
Traceback (most recent call last):
File "test.py", line 11, in <module>
document = loadFile(path)
File "test.py", line 5, in loadFile
f = open(path,'r')
IOError: [Errno 22] invalid mode ('r') or filename: 'D:\\work\\Kindle\\srcs\test1.html'
D:\work\Kindle\Tests>
Run Code Online (Sandbox Code Playgroud)
如果我将路径更改为
path = 'D:\work\Kindle\srcs\\test1.html'
Run Code Online (Sandbox Code Playgroud)
(注意双\\)一切正常.
为什么?分隔符是'\'还是不是,不是混合?
系统.win32上的Windows 7,64位,Python 2.7(r27:82525,2010年7月4日,09:01:59)[MSC v.1500 32位(英特尔)]
选中 - 并且所有反斜杠都正确显示.
你需要在路径中使用额外的反斜杠来逃避反斜杠...就像你已经完成的那样'\\test1.html'.
'\t' 是制表符的转义序列.
'D:\work\Kindle\srcs\test1.html本质上是'D:\work\Kindle\srcs est1.html'.
您还可以使用原始文字,r'\test1.html'扩展为:
'\\test1.html'
Run Code Online (Sandbox Code Playgroud)
对Windows路径使用原始字符串:
path = r'D:\work\Kindle\srcs\test1.html'
Run Code Online (Sandbox Code Playgroud)
否则\t,您的字符串将被解释为Tab字符.
当下一个字符组合产生特殊含义时,反斜杠是一个转义字符.请看以下示例:
>>> '\r'
'\r'
>>> '\n'
'\n'
>>> '\b'
'\x08'
>>> '\c'
'\\c'
>>>
Run Code Online (Sandbox Code Playgroud)
r,n和b在前面都有反斜杠时都有特殊含义.t也是如此,它会产生一个标签.您需要将所有反斜杠加倍,以保持一致性,因为'\\'会产生反斜杠,或者B,使用原始字符串:r'c:\path\to\my\file.txt'.前面的r将提示解释器不要将反斜杠评估为转义序列,从而阻止它\t作为制表符出现.
| 归档时间: |
|
| 查看次数: |
9015 次 |
| 最近记录: |