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

2024-10-03 06:18:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网上搜索过,似乎找不到其他类似的例子。为什么2015年会变成x815,我该如何补救?你知道吗

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

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

Tags: mostoslinecall例子filelastestimate
2条回答

实际上,在Python中,“\”是字符串中的转义字符,所有特殊字符都是由“\”后跟一个或多个其他特定字符创建的。例如,字符串中的"\n"是新行字符。你知道吗

碰巧,“\”后跟三位数字表示一个三位八进制字符。"\201"恰好对应于八进制字符,对于不能打印它的终端,八进制字符可能显示为十六进制数x81。你知道吗

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

print r'N:\PRTR\Weekly Estimate\2105'

r将使Python准确地解释您输入的字符串,忽略所有特殊字符和转义序列,您将得到您想要的结果。你知道吗

实际上\x是转义序列,意味着接下来的两个字符被解释为十六进制数字。你知道吗

因此,您将拥有:

>>> '\2015'
'\x815'

为了得到它,你需要逃离\

>>> print '\\2015'
\2015

相关问题 更多 >