已解决(Python读取文件报错)SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
粉丝群一个小伙伴想用pdfplumber读取PDF的信息,报错代码如下:
import pdfplumber
def pdf(file_path):
print(file_path)
with pdfplumber.open(file_path) as pdf:
for page in pdf.pages:
text = page.extract_table()
try:
for i in text:
print(i)
except Exception as e:
print(e)
file_path = 'C:\Users\Administrator\Desktop\test.pdf'
pdf(file_path)
运行报错信息如下:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
报错信息翻译:
SyntaxError:(unicode错误)“UnicodeScape”编解码器无法解码位置2-3中的字节:截断\uxxxxxxx转义
报错原因:在windows系统当中读取文件路径可以使用\
,但是在python字符串中\
有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。目前有3个解决方案
在Python中出现:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
都可以用以下三种方法解决:
解决方法1:在路径字符串前面加r
,即保持字符原始值的意思。(最常用,强烈推荐使用):
file_path = r'C:\Users\Administrator\Desktop\test.pdf'
解决方法2:在每个\
前面在加一个斜杠,表示让斜杠保持原始字符意思:
file_path = 'C:\\Users\\Administrator\\Desktop\\test.pdf'
解决方法3:把\
全部替换为正斜杠/
file_path = 'C:/Users/Administrator/Desktop/test.pdf'
再次运行代码就成功了: