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 完全按照您输入的方式解释字符串,忽略所有特殊字符和转义序列,您将得到想要的结果。
我在网上搜索过,但似乎找不到任何其他此类实例。为什么 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 完全按照您输入的方式解释字符串,忽略所有特殊字符和转义序列,您将得到想要的结果。