python 解决读取文件时格式不支持的总结

大数据
• 阅读 2606

目前在做的项目中,有一个列表用到的数据没有找到能直接满足需求的数据,给到我的文件里面是一张sql表,需要自己从sql表中,洗出自己需要的数据,于是想到了Python.

在使用python读取文件的时候,报了下面的错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 0: invalid start byte.

网上一开始查到帖子说是编码格式不对,需要在python 文件的顶上添加 # codeing= utf-8,以支持中文编码,由于给到的sql 文件中,确实含有中文,于是就加上了上面的utf-8的支持,满怀希望的执行Python程序,结果还是报了同样的错。

经过一番查找,找到了真正的解决方法,就是文件的编码格式不对,需要在文件读取的时候设置正确的编码格式,或者直接修改文件的编码格式为程序默认支持的格式。解决方法如下:

1、查看文件的编码格式: vim/vi编辑器(进入esc命令模式),执行set fileencoding,查看文件的编码格式,在Python程序中把文件读取时的格式设置为该编码格式,即能正确读取文件。
2、更改文件的编码格式:vim/vi编辑器(进入esc命令模式),执行命令,set fileencoding=utf-8,然后回车,此时我们将文件的格式改成了utf-8格式的了,使用utf-8读取,就能正确的读出文件。

总结

1、在Python文件顶部添加 `#encoding=utf-8`,只是设置当前Python文件支持中文的输入,并不能真正解决读取的文件的编码格式不支持的问题。
2、遇到读取的文件格式不支持的情况,正确的的做法还是,查看文件真正的编码格式,在程序读取的文件的时候,设置正确的编码格式;或者修改文件的编码格式为我们程序支持的格式。
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java memcached client
Memcach什么是MemcacheMemcache集群环境下缓存解决方案Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。Memcache是d
似梦清欢 似梦清欢
2年前
文件操作
文件原理解析C文件概述程序执行时称为进程,进程运行过程中的数据均在内存中。需要存储运算后的数据时,需要使用文件。这样程序下次启动后,就可以直接从文件中读取数据。(之前的程序每次运行都需要手动输入数据)。文件是指存储在外部介质(如磁盘、磁带)上的数据集合。操
Wesley13 Wesley13
3年前
mysql 导入SQL文件报错, Specified key was too long; max key length is 767 bytes
\MySQL导入数据的时候,总是报错,本地测试都没办法测试导出SQL文件正常,在导入SQL文件的时候,报错大部分数据表导入成功,个别的失败     在网上看到很多建议: 1.建议别直接运行sql文件,你可以尝试打开sql文件自己选取sql执行2.Navicat运行SQL文件时,去掉第二个√(每个运
Wesley13 Wesley13
3年前
Java读取apk、ipa包名、版本名、版本号、图标等信息
当我们上传apk或者ipa文件的时候是要读取到里面的一些信息的,而对于未知的apk或者ipa,我们无法直接获取其中的包名、应用名、图标等,这时候通过工具类来获取信息就很有必要了。在这里,我总结了一下读取apk,ipa文件的代码和使用方法,大家可以参考下,取其精华、去其糟粕,以便适用于自己的需求。\
Stella981 Stella981
3年前
Python操作Excel
前言:Python操作Excel使用openpyxl模块,python中有好几个与excel相关操作的模块。xlrd库:从excel中读取数据,支持xls、xlsx格式。xlwt库:对excel进行修改操作,不支持对xlsx格式的修改。xlutils库:在xlrd和xlwd中对一个已存在的文件进行修改。openpyxl库:
Stella981 Stella981
3年前
MyBatis 汉字作为查询条件查询不到 MySQL 中的结果
在使用mybitis查询mysql数据库的时候用到了汉字作为查询条件,sql语句在navcat里面可以查询的到但是在项目里确不行了1\.以下是项目中的SQL文件。因为where条件中传输进来的参数是汉字,所以在查询的时候,加上where子句返回的结果就为空。<?xmlversion"1.0"encodin
Stella981 Stella981
3年前
GreenPlum 大数据平台
一,外部表介绍  Greenplum在数据加载上有一个明显的优势,就是支持数据的并发加载,gpfdisk是并发加载的工具,数据库中对应的就是外部表  所谓外部表,就是在数据库中只有表定义、没有数据,数据都存放在数据库之外的数据文件。greenplum可以对一个外部表执行正常的DML操作,当读取数据的时候,数据库从数据文件中加载数据。
Stella981 Stella981
3年前
NSUserDefaults轻量级本地存储数据
NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不
Python进阶者 Python进阶者
3年前
盘点一个文件读取时utf-8错误的解决办法
大家好,我是皮皮。一、前言前几天在Python白银交流群有个叫【大侠】的粉丝问了一个Python读取文件的时候报错的问题,这里拿出来给大家分享下,一起学习下。二、解决过程看上去代码有报错,截图如下。这个错误倒是很常见,因为数据没有给utf8编码,或者读取的时候,没有指定utf8编码,都会报类似的错。上图是他的代码,15行那里指定一下编码就可以了。指定编码
一种读取亿级doris数据库的方法 | 京东云技术团队
1.工作中,常常需要将线上doris同步至集市。读取doris数据同读取常规mysql基本相同。如果数据行小于千万,比较简单的方式直接单节点连接、读取和存储。Python示例如下:defgetdata(sql,host'',port2000,user'',
Python进阶者 Python进阶者
2年前
用Python脚本自动采集金融网站当天发布的免费报告
大家好,我是皮皮。一、前言前几天在Python群【林生】问了一个Python数据采集的问题,需求如下:想写一个脚本能自动采集下载当天发布的这个页面的这几个免费报告,能保存成这个标题的pdf文件,网站是手机号注册就能下载这些文件的,就是在我注册登录状态下,能
大数据
大数据
Lv1
我堆的雪人说想见你,她等不了太久。
文章
4
粉丝
0
获赞
0