Python 读取文件时 'unicodeescape' 报错及路径处理详解

键盘旁的猫
键盘旁的猫
发布时间:2026-10-13| 5人浏览过
原创

本文解析Python中打开文件时常见的 'unicodeescape' 编码错误。该错误通常由Windows路径中的反斜杠被误认为转义字符引起。文章提供了三种解决方案:双反斜杠转义、原始字符串前缀r以及使用正斜杠,并推荐跨平台通用的正斜杠写法。

Python 读取文件 'unicodeescape' 报错原因

Python 中 ‘unicodeescape' codec can't decode bytes in position XXX: truncated \UXXXXXXXX escape 错误解决方案

Python 文件路径处理的三种解决方案

背景描述

今日在使用 Python 的 Pillow 模块处理图片时,遇到了一个报错。


SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

起初怀疑是图片文件名包含中文导致无法识别,因此在 Python 文件头部添加了编码声明。


#-*- coding:utf-8 -*-

然而添加该声明后依然报错,随后尝试将图片文件名改为英文,问题依旧存在,令人困惑。后来在 StackOverflow 上找到类似案例,发现根本原因在于图片路径的书写方式有误,错误代码如下:


im = Image.open('C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')

修正后的正确写法如下:


im = Image.open('C:\\Users\\FrankYuan\\Pictures\\Camera Roll\\WIN_20161010_08_51_57_Pro.jpg')

或者采用原始字符串形式:


im = Image.open(r'C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg')

亦或使用正斜杠路径:


im = Image.open(r'C:/Users/FrankYuan/Pictures/Camera Roll/WIN_20161010_08_51_57_Pro.jpg')

原因分析:

在 Windows 系统中读取文件可以使用反斜杠 \,但在普通字符串中,\ 被视为转义字符。例如 'd:\a.txt' 会被正确解析为 'd:\a.txt',因此不会报错。然而,像 'C:\Users\FrankYuan\Pictures\Camera Roll\WIN_20161010_08_51_57_Pro.jpg' 这样的路径,经过转义处理后,部分序列(如 \t)可能被解释为制表符等控制字符,从而导致路径资源无法找到。

解决办法:

Python 在描述路径时支持多种写法,以下列举三种常见方式:


方式一:转义的方式
 
'd:\\a.txt'
 
方式二:显式声明字符串不用转义
 
'd:r\a.txt'
 
方式三:使用Linux的路径/
 
'd:/a.txt'

我强烈推荐第三种写法,因为它在 Linux 和 Windows 系统下均能正常运行。

以上内容即为解决 Python 读取文件时报错及路径处理的相关技巧,希望能对大家有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。