hello,大家新年好~~~~~新年复工后运行python文件,使用configparser读取绝对路径的.ini配置文件时,发现读不到section和报SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape错。其实引起这个错误的原因就是转义的问题。

附上原代码:

import configparser

cf=configparser.ConfigParser()
cf.read('D:\roucaichaxun\conf.ini')
cf.read('C:\Users\asus\Desktop\config.ini')
secs=cf.sections()
print(secs)

 原因分析:在windows系统当中读取文件路径可以使用\,但是在python字符串中\有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。目前有3个解决方案

1、在路径前面加r,即保持字符原始值的意思。

cf.read(r'D:\roucaichaxun\conf.ini')
cf.read(r'C:\Users\asus\Desktop\config.ini')

2、替换为双反斜杠

cf.read('D:\\roucaichaxun\\conf.ini')
cf.read('C:\\Users\\asus\\Desktop\\config.ini')

3、替换为正斜杠

cf.read('D:/roucaichaxun/conf.ini')
cf.read('C:/Users/asus/Desktop/config.ini')