Python 3.x 是'\2';Python中的一种转义序列,类似于'\b';用于退格或'\n';新线?
我试图打开一个文件夹中的文件,该文件夹的名称以数字2开头。当我收到一个文件未找到错误时,文件名参数显然有一个字符序列,类似于Python 3.x 是'\2';Python中的一种转义序列,类似于'\b';用于退格或'\n';新线?,python-3.x,escaping,Python 3.x,Escaping,我试图打开一个文件夹中的文件,该文件夹的名称以数字2开头。当我收到一个文件未找到错误时,文件名参数显然有一个字符序列,类似于C:\..\2999abc…\abc.xlsx 在这篇文章中,通过反复试验,我发现\2被视为一个转义序列,并在\之前添加一个\299..解决它。更多的试验和错误结果如下: a = 'assdd\2ddd' print (a) Result: assdd ddd a = 'assdd\1ddd' print (a) Result: assddddd 有人能帮我理解这里发生
C:\..\2999abc…\abc.xlsx
在这篇文章中,通过反复试验,我发现\2
被视为一个转义序列,并在\
之前添加一个\299..
解决它。更多的试验和错误结果如下:
a = 'assdd\2ddd'
print (a)
Result: assdd ddd
a = 'assdd\1ddd'
print (a)
Result: assddddd
有人能帮我理解这里发生了什么吗?在
Python
字符串中,转义字符和数字一起被解释为ASCII字符,数字为八进制值
在您的例子中,\2
被视为具有八进制值002的ASCII字符,这是文本的开头(STX
)字符\1
是头的开头(SOH
)字符
在ASCII字符中,八进制值为000-037的字符是不可打印的,您不应该将其打印出来。如果在Python
中对它们调用print
函数,如您所见,Python
将\2
打印为空格,\1
打印为空。但是,这在不同的机器上可能有所不同 。所以,是Unicode,而不是ASCII。