问 题

python的确很赞,但是编码这个问题真的太尿性了。。。

现在我有一个文件,不论他的编码方式是什么,我都想把它转化成utf-8的格式。我的想法是先读取文件内容,保存到data变量中去,然后再以utf-8的格式写入文件。

但是现在遇到的问题是当我要打开某文件是得知道它的编码格式是什么,不然就总是报错,文件也打不开。

比如说我执行下面的代码

with codecs.open("test.csv","r",encoding="utf-8") as f:

data = f.read()

print(data)

print(chardet.detect(data))

除非test.csv文件的确是以utf-8的格式编码的才能正常打开,如果我用记事本修改成Unicode编码,结果就会报错,错误信息如下

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

所以想问一下有没有什么办法可以知道整个文件的编码方式,最好是不用读写操作,或者直接给一个库函数。

我有试过用chardet.detect()查看文件编码格式,但是总是报错。错误信息如下

Traceback (most recent call last):

File "E:\Code\python\Flask\csv-mysql\test.py", line 44, in

print(chardet.detect(data))

File "C:\Python35\lib\site-packages\chardet\__init__.py", line 25, in detect

raise ValueError('Expected a bytes object, not a unicode object')

ValueError: Expected a bytes object, not a unicode object

解决方案

with open("test.csv","rb") as f:

data = f.read()

print(chardet.detect(data))

用二进制模式读取

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

python3文件的编码类型是什么_python3.x - 怎么查看某个文件的编码方式?python相关推荐

  1. python3文件的编码类型是什么_Python3编码类型有哪些?怎么转换?

    经过小伙伴们的提醒,小编发现编码方面少讲了一个基础知识,所以有的小伙伴对这方面的内容比较模糊,这就让小编有点尴尬了.收到大家的催促,小编马上就整理出了编码类型的资料,内容方面都是经过精简的,便于小伙伴 ...

  2. 用UltraEdit判断打开文件的编码类型 用UltraEdit或notepad记事本查看文件编码格式 用UltraEdit查看当前文件编码...

    用UltraEdit查看当前文件编码 想判断文件的编码类型? 用强大的UltraEdit-32软件: UltraEdit-32的状态栏可以显示文件的编码类型,详细情况如下: ANSI/ANSCI--- ...

  3. linux 查看文件哈希码,使用linux的sha1sum命令查看效验文件哈希值命令

    服务器 今天小编给大家分享的是使用linux的sha1sum命令查看效验文件哈希值命令,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧.一定会有所收获的哦. sha1 ...

  4. ubuntu系统(四):批量化查看pcd文件, 批量化修改图像的像素尺寸、查看当前文件夹下的文件数量

    目录 一.ubuntu批量化查看pcd文件 二.ubuntu批量化修改图像的像素尺寸 三 查看当前文件夹下的文件数量 一.ubuntu批量化查看pcd文件 将下面的脚本与要批量化查看的pcd文件放在一 ...

  5. java 查看dump文件_[JAVA]JAVA章3 如何获取及查看DUMP文件

    一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...

  6. .dat文件写入byte类型数组_小师妹学JavaIO之:文件写入那些事

    简介 小师妹又对F师兄提了一大堆奇奇怪怪的需求,要格式化输出,要特定的编码输出,要自己定位输出,什么?还要阅后即焚?大家看F师兄怎么一一接招吧. 字符输出和字节输出 小师妹:F师兄,上次你的IO讲到了 ...

  7. FFmpeg中编码类型为rawvideo无须解码直接显示测试代码

    在 https://blog.csdn.net/fengbingchun/article/details/93975325 中介绍过通过FFmpeg可以直接获取usb视频流并解码显示的测试代码,当时通 ...

  8. html页面点击按钮上传文件,点击按钮实现文件上传及控制文件上传类型

    1.原生js实现文件上传 html部分: 上传文件 js部分: upload(event) { //代替执行上传功能 let it = event.target; $(it).next().click ...

  9. 查看mysql的启动日志目录下_mysql诊断启动问题、查看日志文件详解

    诊断启动问题 服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现.MySQL在这个问题发生时报告错误,但由于多数MySQL服务器是作为系统进程或服务自动启动的,这些消息可能看不到. 在排除 ...

最新文章

  1. SAP SD微观研究之销售发票自动生成初探
  2. DFS产生的ID=13562事件
  3. 线性代数 第一章 行列式
  4. c语言求上升沿次数,[求助]上升沿信号在C语言中怎么写啊
  5. oracle修改时区无效,Linux 7 修改时区不生效
  6. Java AOP研究之how is my aop2 method called
  7. kafka streams实战 pdf_spring框架实战口试材料
  8. linux下重新启动oracle
  9. crf的实现 keras_你的 CRF 层的学习率可能不够大
  10. BigDecimal的8种精度取舍方式
  11. day4.编程语言简介
  12. 剑指offer面试题[35]-第一个只出现一次的字符
  13. WIFEXITED WEXITSTATUS WIFSIGNALED(转)
  14. path和classpath的区别
  15. operating system not found的问题的解决办法 ---设置活动分区
  16. 笔记(待续)-基于梯度下降法的RBF神经网络控制
  17. Android实现开屏广告(广点通SDK)
  18. 某Xavier载板硬件方案
  19. Mac鼠标滚轮控制浏览器
  20. idog copy from,

热门文章

  1. 小程序中 使用fixed自定义弹窗时,底部长页面禁止滚动
  2. eclipse 安装git
  3. php数据访问层设计,php - Zend框架数据访问层(DAL) - 堆栈内存溢出
  4. linux 编译多个文件,linux gcc编译多个源文件的方法
  5. 【C语言进阶深度学习记录】二十九 main函数与命令行参数
  6. 【OS学习笔记】十三 保护模式一:全局描述符表(GDT)
  7. 【C++的深度剖析教程20】类型转换函数上
  8. canvas填充规则
  9. web程序入门五(http无状态)
  10. SQL PROMPT5.3.4.1的一些设置选项