【问题标题】:'unicodeescape' codec can't decode bytes: truncated \xXX escape Mac OS'unicodeescape' 编解码器无法解码字节:截断 \xXX 转义 Mac OS
【发布时间】:2020-06-12 14:19:09
【问题描述】:

我尝试读取文件(MacOS)

file_path = r'xml/J96-3004.xml'
with open (file_path, 'r', encoding='unicode-escape') as f:
    contents = f.read()

我查看了所有可能的信息,但没有一个有效:

  • 使用原始字符串
file_path = r'xml/J96-3004.xml'
with open (file_path, 'r', encoding='unicode-escape') as f:
    contents = f.read()
  • 使用路径库
from pathlib import Path
data_folder = Path('xml')
file_path = data_folder / "J96-3004.xml"
with open (file_path, 'r', encoding='unicode-escape') as f:
    contents = f.read()
  • 使用 os.path
import os
file_path = os.path.join(path, "J96-3004.xml")
with open (file_path, 'r', encoding='unicode-escape') as f:
    contents = f.read()
  • 使用 // 代替 / ;和 "" 而不是 ''
  • 使用编码“utf-8”、“windows-1251”

发生错误“'unicodeescape'编解码器无法解码字节:截断\xXX转义Mac OS "

还有其他解决方案吗?

【问题讨论】:

  • 可以分享部分文件吗?我无法使用我自己的 xml 文件复制您的错误
  • 感谢您的提问 - 问题不在于文件名 - 而在于文件内容。我检查了文本——它是一个词“1j\xia”——这就是问题所在。现在我正在考虑如何解决这个问题。

标签: python python-3.x


【解决方案1】:

即使我以前也遇到过这个问题。在文件路径中使用“\”而不是“/”,如下所示:

file_path = r'xml\J96-3004.xml'
with open (file_path, 'r', encoding='unicode-escape') as f:
    contents = f.read()

希望这会有所帮助:)

【讨论】:

  • 反斜杠不起作用:FileNotFoundError: [Errno 2] 没有这样的文件或目录:'xml\\J96-3004.xml'
  • 您是否指定了完整路径?
猜你喜欢
  • 2023-03-05
  • 2021-03-05
  • 2022-11-02
  • 2016-09-20
  • 1970-01-01
  • 2016-11-03
  • 2020-01-06
  • 2011-11-27
相关资源
最近更新 更多