zoukankan      html  css  js  c++  java
  • 批量txt之ANSI编码转UTF-8编码

    这个问题终于解决了,因为要分类,要整自己的数据集,有好多ANSI编码的很恶心人,也百度了方法,但是到我这就是差那么一点点,说白了就是转不了,由相关博主推荐的exe小程序也是解决不了问题。

    主要参考博客:https://www.cnblogs.com/lxh1208891835/p/9493764.html  https://blog.csdn.net/eydwyz/article/details/56276432 (一类的博客)  https://www.cnblogs.com/123ing/p/4134451.html  https://www.cnblogs.com/LicwStack/p/6877817.html  等等吧

    最终自己拼凑思路解决问题:首先我的txt不是所有的都是ANSI编码,我要判断txt的编码,百度此方法;其次找到了ANSI编码的txt,如何读取再存储,并且不改变txt名称、内容

    具体代码如下:(记录一下,防止以后再用到,也或许能帮到其他人)

    import chardet
    import os
    path = "F:\corpus"    # 所有txt存放的文件夹的路径
    files = os.listdir(path)   # 读取所有txt的文件名,包含后缀名
    print(files)   
    print(len(files))
    for file in files:    # 循环所有txt
        p = path + "\" + file   # 拼接各个txt的路径
        f = open(p, 'rb')  # 打开文件,读取内容,判断编码
        data = f.read()
        f.close()
        txtEncoding = chardet.detect(data).get("encoding")
        if txtEncoding == "GB2312":   # 经个人实验,发现ANSI编码检测时为GB2312编码,所以以此为判断条件
            print(file)
            with open(p, 'r') as f:  # 读取编码为ANSI编码txt的内容,存放到一个变量里
                content = f.read()
            f.close()
    
            with open(p, 'w', encoding="utf-8") as f:  # 把读取的内容,存入原txt中,替换原内容
                f.write(content)
            f.close()

    经过实验,可以达到我想要的效果,至此结束!希望可以帮到大家!

                                                                    

  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/JadenFK3326/p/13055366.html
Copyright © 2011-2022 走看看