统计
  • 文章总数:896 篇
  • 评论总数:1454 条
  • 分类总数:2 个
  • 最后更新:一天前
原创技术知识

【弊坑】python循环读取txt文本的时候字符编码出错怎么办?最好的解决方法:自动识别编码是什么!

本文阅读 2 分钟
首页 技术知识 正文

使用python循环读取文件夹下的txt文本时,发现写入的时候没有控制它的字符编码为"utf-8"或者GBK,导致它的编码一会儿这个一会儿那个的,有的时候还会出现另一种编码。
2023-11-13T07:23:41.png

普通的写法

下方代码出现gbk或者utf-8或者另一种编码的时候,偶尔会报错。
答案:无法解决

def combine_files(file_paths):
    combined_content = ""
    for file_path in file_paths:
        with open(file_path, 'r') as file:
            content = file.read() + '<br />'
            combined_content += content
    return combined_content

进阶写法

在读取的时候加上encoding='utf-8' 或者encoding='gbk'
下方代码如果是utf-8将会按照utf-8来执行,如果不是,按照默认的编码执行。
但是有时候仍然出现字符编码错误。
答案:不能解决问题!

def combine_files(file_paths):
    combined_content = ""
    for file_path in file_paths:
        with open(file_path, 'r',encoding='utf-8') as file:
            content = file.read() + '<br />'
            combined_content += content
    return combined_content

最好的写法

自动识别编码,并持续执行。(需要用到chardet包)
答案:完美解决

import chardet

def combine_files(file_paths):
    combined_content = ""
    for file_path in file_paths:
        with open(file_path, 'rb') as file:
            raw_data = file.read()
            detected_encoding = chardet.detect(raw_data)['encoding']
            content = raw_data.decode(detected_encoding) + '<br />'
            combined_content += content
    return combined_content

以上是十六在python文件读取时遇到的坑,可能代码不一定完全完美或者精炼,但是执行无报错,问题解决,分享给大家!

原创文章,作者:lichen360,如若转载,请注明出处:https://hhpi.cn/381.html
浅谈下Chatgpt和claude2哪个好用?当下哪种AI更加适合写作?
« 上一篇 11-12
二次元BT宝塔面板美化透明版主题包_含模板样式文件替换即可使用!
下一篇 » 11-13

发表评论

发表评论

作者信息

动态快讯

    请配置好页面缩略名选项

热门文章

标签TAG

没有任何标签

热评文章