水了一整个大学现在重新学编程 2024-11-09 17:25 采纳率: 60%
浏览 16
已结题

python的pathlib怎么读中文文本

python读文件时候报错,报错内容为UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position 20: illegal multibyte sequence,去百度了还是没找到方法。代码内容大致就是from pathlib import Path,txt文本里面的内容就古诗就朝辞白帝彩云间那个,我print出来报错说gbk编码没办法读,但我在括号里加上encoding='utf-8'也不行,百度了好久都是说用with open as file的方式来改成utf-8的方式,但有没有path方式的呀,就不要用with open的,help!!!!!!!!!!!

img

img

  • 写回答

2条回答 默认 最新

  • 无疆76 2024-11-09 17:26
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在Python中,使用pathlib模块读取文件时遇到UnicodeDecodeError通常是因为文件的实际编码与读取时指定的编码不匹配。从您提供的报错信息和文件内容来看,文件内容似乎是以UTF-8编码的,但在读取时可能默认使用了GBK编码,导致解码错误。

    对于pathlib中的Path.read_text()方法,您可以直接通过传递encoding参数来指定编码。您应该尝试使用UTF-8编码读取文件,像这样:

    path = Path("./content.txt")
    content = path.read_text(encoding='utf-8')  # 显式指定使用UTF-8编码读取文件
    print(content)
    

    这样应该可以正确读取文件内容,而不会导致UnicodeDecodeError。请尝试这种方法并看看是否能够解决您的问题。

    另外,如果您不确定文件的实际编码,您可以使用一些工具或库(如chardet)来检测文件的编码,然后再使用相应的编码读取文件。这样也可以避免编码错误。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 修改了问题 11月9日
  • 创建了问题 11月9日