the*_*one 1 python windows path filepath python-2.7
我有一个原始字符串表示窗口上的路径,如下所示:'F:\\Music\\v flac\\1-06 No Quarter.flac\r'我应该怎么做才能让open()接受它?os.path.normpath()不起作用.
>>> path
'F:\\Music\\v flac\\1-06 No Quarter.flac\r'
>>> fp=open(path,'rb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 22] invalid mode ('rb') or filename: 'F:\\Music\\v flac\\1-06 No
Quarter.flac\r'
>>> fp=open(os.path.normpath(path),'rb')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 22] invalid mode ('rb') or filename: 'F:\\Music\\v flac\\1-06 No
Quarter.flac\r'
>>>
Run Code Online (Sandbox Code Playgroud)
双斜线不是问题所在.最后是\r回车符导致你出现问题.
从路径中串起来:
fp = open(path.strip(), 'rb')
Run Code Online (Sandbox Code Playgroud)
Python仅显示字符串的字符串文字表示path,以便于调试.在可打印的ASCII范围之外的任何具有特殊含义的字符都会被转义,包括反斜杠.值本身没有加倍的反斜杠:
>>> path = 'F:\\Music\\v flac\\1-06 No Quarter.flac\r'
>>> path
'F:\\Music\\v flac\\1-06 No Quarter.flac\r'
>>> print path
F:\Music\v flac\1-06 No Quarter.flac
>>> path[:3]
'F:\\'
>>> len(path[:3])
3
Run Code Online (Sandbox Code Playgroud)
请注意打印 如何path显示仅具有单个反斜杠的路径值以及路径的前3个字符的方式F:\,字符串长度为3而不是4.在Python字符串文字中,反斜杠将表示转义序列,因此Python也会逃避这些转义.
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |