Strange path separators on Windows

时光总嘲笑我的痴心妄想 提交于 2019-11-29 07:39:32

The backslash is an escape character when the next character combination would result in a special meaning. Take the following examples:

>>> '\r'
'\r'
>>> '\n'
'\n'
>>> '\b'
'\x08'
>>> '\c'
'\\c'
>>>

r, n, and b all have special meanings when preceded by a backslash. The same is true for t, which would produce a tab. You either need to A. Double all your backslashes, for consistency, because '\\' will produce a backslash, or, B, use raw strings: r'c:\path\to\my\file.txt'. The preceding r will prompt the interpreter not to evaluate back slashes as escape sequences, preventing the \t from appearing as a tab.

You need to escape backslashes in paths with an extra backslash... like you've done for '\\test1.html'.

'\t' is the escape sequence for a tab character.

'D:\work\Kindle\srcs\test1.html is essentially 'D:\work\Kindle\srcs est1.html'.

You could also use raw literals, r'\test1.html' expands to:

'\\test1.html'

Use raw strings for Windows paths:

path = r'D:\work\Kindle\srcs\test1.html'

Otherwise the \t piece of your string will be interpreted as a Tab character.

The backslash \ is an escape character in Python. So your actual filepath is going to be D:\work\Kindle\srcs<tab>est1.html. Use os.sep, escape the backslashes with \\ or use a raw string by having r'some text'.

In addition to using a raw string (prefix string with the r character), the os.path module may be helpful to automatically provide OS-correct slashes when building a pathname.

Gotcha — backslashes in Windows filenames provides an interesting overview.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!