Python - 当包含在目录字符串中时,数字会发生变化

Python - Numbers change when included in a directory string

我在网上搜索过,但似乎找不到任何其他此类实例。为什么 2015 会变成 x815,我该如何补救?

>>> os.chdir("N:\PRTR\Weekly Estimate15")

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    os.chdir("N:\PRTR\Weekly Estimate15")
WindowsError: [Error 2] The system cannot find the file specified: 'N:\PRTR\Weekly Estimate\x815'

实际上 \x 是转义序列,表示接下来的两个字符被解释为十六进制数字。

所以你将拥有:

>>> '15'
'\x815'

要乘坐它,您需要逃脱 \ :

>>> print '\2015'
15

实际上,在Python中,“\”是字符串中的转义字符,所有特殊字符都是由“\”后跟一个或多个其他特定字符组成的。比如字符串中的"\n"就是一个换行符。

正好,“\”后跟三位数字表示一个三位八进制字符。 "1"恰好对应八进制字符�,对于无法打印的终端,可能会输出为十六进制数x81

为避免这种情况,将字母 r 放在引号外的前面,使您的字符串成为原始字符串,如下所示

print r'N:\PRTR\Weekly Estimate05'

r 将使 Python 完全按照您输入的方式解释字符串,忽略所有特殊字符和转义序列,您将得到想要的结果。