Python 中的解码错误:转换字节时出现 UnicodeDecodeError
Python 中处理字符串时遇到的常见错误是尝试解码时出现 UnicodeDecodeError使用 UTF-8 编解码器的字节。当 Python 尝试将字节数组解释为 UTF-8 编码的字符串并遇到不符合 UTF-8 规则的字节序列时,会发生此错误。
在提供的特定情况下引用URL,从 pix2pix-tensorflow GitHub 存储库编译“process.py”脚本时遇到错误。该脚本尝试使用 open() 读取并加载文件(特别是图像)。当 Python 尝试将文件内容解码为 UTF-8 字符串时,失败了,因为 UTF-8 编码不允许文件开头的字节序列。
此错误的根本原因是文件内容的实际性质与 Python 假设它们是 UTF-8 编码之间的不匹配。原始文件可能是二进制文件,例如图像或压缩数据,无法可靠地解码为 UTF-8。
要解决此问题,应使用 ' 显式将文件读取为二进制数据open() 函数中的 rb' 模式:
<code class="python">with open(path, 'rb') as f: contents = f.read()</code>
通过使用 'rb' 模式,Python 会将文件视为二进制文件,并且不会尝试对其进行解码。这将防止发生 UnicodeDecodeError。
以上是为什么我的 Python 代码在读取文件时会抛出 UnicodeDecodeError?的详细内容。更多信息请关注PHP中文网其他相关文章!