首页 > 系统相关 >python批量将文件编码格式转换为 UTF8带标签的格式,解决linux环境下中文编码乱码的问题

python批量将文件编码格式转换为 UTF8带标签的格式,解决linux环境下中文编码乱码的问题

时间:2024-12-04 17:45:07浏览次数:7  
标签:编码 乱码 chardet file path print 格式 content data

指定一个文件夹,遍历文件夹内的文件和子文件夹内的文件,然后识别文件后缀为cpp的文件,通过chardet取检测文件的编码格式,如果不是UTF-8-SIG,则转换为UTF-8-SIG

python脚本格式如下

import os
import sys
import codecs
import chardet

def convert(filename,out_enc="UTF-8-SIG"):
  try:
    content=codecs.open(filename,'rb+').read()
    source_encoding=chardet.detect(content)["encoding"]
    print(source_encoding)
    
    if source_encoding != "UTF-8-SIG":#"GB2312":
      content=content.decode(source_encoding).encode(out_enc)
      codecs.open(filename,'wb+').write(content)
      print("covert file "+filename)
  except IOError as err:
    print("I/O error:{0}".format(err))

def removeBom(file):
  '''移除UTF-8文件的BOM字节'''
  data = open(file,'rb+').read()
  if data[:3] == codecs.BOM_UTF8:
    data = data[3:]
    data.decode("utf-8")
    # print(data.decode("utf-8"))


def explore(dir):
  for root,dirs,files in os.walk(dir):
    for file in files:
      if os.path.splitext(file)[1]=='.cpp':
       print(file)
       path=os.path.join(root,file)
       convert(path)
       # removeBom(path)

def main():
  explore(sys.argv[1])

if __name__=="__main__":
  main() 

 

如果出现未找到chardet的错误,在cmd中执行下pip install chardet 命令,就可以安装chardet

然后用cmd执行 执行命令 python ToUtf8.py test   test是文件夹的名称;就可以批量实现文件的编码格式识别和转换了;

标签:编码,乱码,chardet,file,path,print,格式,content,data
From: https://www.cnblogs.com/bclshuai/p/18586827

相关文章

  • IntelliJ+SpringBoot项目实战(26)--SpringBoot的JavaMailSender发邮件及模版引擎发送带
        在上节中介绍了不依赖于SpringBoot自带的mailSender发邮件的模式。本文介绍如何使用SpringBoot的JavaMailSender,以及如何使用freemarker及thymeleaf模版引擎发送带格式的邮件,以及如何在邮件正文中嵌入图片。上节中的发邮件的方式与SpringBoot的JavaMailSender发邮......
  • 获取当前日期yyyy-MM-dd 格式
    functiongettime(){//创建一个Date对象vartoday=newDate();//获取年、月、日、时、分、秒varyear=today.getFullYear();varmonth=today.getMonth()+1;//月份是从0开始计数的,需要加1varday=today.getDate();v......
  • 记一次 对 xfs格式 逻辑卷进行扩缩容
    背景前人在部署服务器的时候,给根目录预留的空间太小了,导致总告警,虽然会定时自动清理,但是总触发告警总是不好的。查看发现/home目录空间非常大,而且利用率非常低,所以想着把/home目录的空间匀一点给根目录。但是发现逻辑卷的格式是xfs格式的,是只能扩容,无法缩容的,缩容后需要......
  • 【坑记录】linux 输出中文乱码问题
    1、现象:1)上传shell脚本到centos7系统运行后,脚本中echo输出内容到文件,不管是cat或者vim打开文件,中文都是乱码,如下图:2、排查1)怀疑系统编码和文件编码不一致导致显示乱码。系统编码,经过查看,如下:文件编码,经过查看,如下:确实是编码不一致导致。2)系统编码已经是utf-8,但是文件编......
  • 设计位置编码
    Gall定律一个有效的复杂系统通常是从一个有效的简单系统演化而来的——JohnGall本文将带你一步步探究Transformer模型中先进的位置编码技术。我们将通过迭代改进编码位置的方法,最终得出旋转位置编码(RotaryPostionalEncoding,RoPE),这也是最新发布的LLama3.2和......
  • 基于MIMO系统的PE-AltMin混合预编码算法matlab性能仿真
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印):  仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要       在现代无线通信系统中,多输入多输出(Multiple-InputMultiple-Output,MIMO)技术是提高频谱效率和数据传输速率的关键。然而......
  • 服务启动没问题,打包出现异常乱码问题修改记录
    打包时报错[ERROR]Failureexecutingjavac,butcouldnotparsetheerror:[������ʼʱ��RegularFileObject[xxxx\xxxx服务\src\main\java\com\owinfo\service\service\impl\VehicleInfoService.java]][���������,��ʱ18����][������ʼʱ��RegularFileObject[xxxx\......
  • vs2015中使用utf-8编码格式
    在VS2015中,将文件保存为UTF-8格式并确保项目设置支持UTF-8编码,可以通过以下步骤完成:将项目“字符集”设置为“使用Unicode字符集”,将文件保存为utf-8格式:在VisualStudio2015中打开你需要转换编码的文件,点击顶部菜单栏的“文件”,选择“高级保存选项”,在弹出的对话......
  • 如何解决 Java Properties 文件中 .ini文件乱码问题
    如何解决JavaProperties文件中.ini文件乱码问题在Java开发中,配置文件是一项常见的需求,通常我们使用.properties文件来保存应用程序的配置。然而,当我们尝试使用.ini文件(即带有非标准字符编码的配置文件)时,经常会遇到乱码问题。这个问题的出现,通常是因为Properties类默......
  • 动手学深度学习10.6. 自注意力和位置编码-笔记&练习(PyTorch)
    本节课程地址:67自注意力【动手学深度学习v2】_哔哩哔哩_bilibili本节教材地址:10.6.自注意力和位置编码—动手学深度学习2.0.0documentation本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptrons>self-attention-and-positional-encoding.ipynb自注意力和......