【Python问题解决】利用Python读取文件时出现\ufeff的原因及 ...
文章推薦指數: 80 %
我们最开始是建立的.xslx文件,后又另存为.csv文件(UTF-8编码),而utf-8编码的文件时开头会有一个多余的字符\ufeff,这是我们读取文件也按UTF-8编码 ...
【Python问题解决】利用Python读取文件时出现\ufeff的原因及解决办法
奋斗中的编程菜鸟
于 2019-10-3121:33:09 发布
5189
收藏
15
分类专栏:
Python
文章标签:
Python
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43876206/article/details/102837932
版权
Python
专栏收录该内容
10篇文章
1订阅
订阅专栏
利用Python读取文件时出现\ufeff的原因及解决办法
今天利用Python读取一个csv文件
代码如下:
importcsv
withopen('test.csv','r',encoding='UTF-8-sig')ascsvfile:
csv_reader=csv.reader(csvfile)
forrowincsv_reader:
print(row)
print(row[0])
结果如下:
['\ufeffA1','B1','C1','D1']
A1
['A2','B2','C2','D2']
A2
['A3','B3','C3','D3']
A3
['A4','B4','C4','D4']
A4
['A5','B5','C5','D5']
A5
输出部分的开头多出了个不速之客
“\ufeff”
看了csv文件里面也没有特殊字符
怎么输出就多了\ufeff了呢???
原因分析
utf-8编码的文件时开头会有一个多余的字符\ufeff,在读文件时会读到\ufeff
解决办法
只需改一下编码就行,把UTF-8编码改成UTF-8-sig编码即可改后示例:
importcsv
withopen('test.csv','r',encoding='UTF-8-sig')ascsvfile:
csv_reader=csv.reader(csvfile)
forrowincsv_reader:
print(row)
print(row[0])
效果展示
好了,利用Python读取文件时出现\ufeff的问题已经解决了
下面来具体了解一下,想深入具体了解的各位看官可以继续阅读……
问:输出的\ufeff到底是哪里来的呢?答:在编写文本时保存时包含了BOM(ByteOrderMark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码)导致最后输出了\ufeff。
我们最开始是建立的.xslx文件,后又另存为.csv文件(UTF-8编码),而utf-8编码的文件时开头会有一个多余的字符\ufeff,这是我们读取文件也按UTF-8编码就会输出\ufeff,所以,应该使用utf-8-sig编码,就可以去除文件开头的\ufeff。
问:utf-8与utf-8-sig两种编码格式有什么区别呢?答:UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrderMark”)。
但是UTF-8withBOM即utf-8-sig需要提供BOM。
问:\ufeff到底是什么?答:字节顺序标记(英语:byte-ordermark,BOM)是位于码点U+FEFF的统一码字符的名称。
当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。
它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的记号。
以上就是关于Python读取文件时出现\ufeff的原因及解决办法
若大家想了解编码相关知识
关于计算机中常见的几种编码可以参考这篇文章:计算机编程种常见的几种编码详解
【JavaWeb】相关技术文章:【JavaWeb总结】JavaWeb项目中的.classpath、.mymetadata、.project文件作用【JavaWeb问题解决】Tomcat报错javax.servlet.ServletException:Errorinstantiatingservletclass.报错404【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别?【总结】表单提交的get和post有什么不同?【JavaWeb问题解决】Tomcat报错:java.lang.ClassCastException:cannotbecasttojavax.servlet.Filter解决办法【JavaWeb问题解决】Filter过滤器初始化方法init()执行了两次原因及解决方法【总结】JavaWeb中的4种属性范围(page、request、session、application)【JavaWeb问题解决】Tomcat报错:java.sql.SQLException:Nosuitabledriverfoundforjdbc:mysql://【JavaWeb问题解决】Tomcat启动时控制台出现中文乱码的问题解决方法【示例项目】java实现通过身份证号码判断籍贯所在地区【总结】HTTP协议中的状态码(200、403、404、500等)【JavaWeb问题解决】提交表单后显示乱码原因及解决办法【JavaWeb总结】JSP页面的生命周期详解【JavaWeb总结】JSP页面实现类详解【JavaWeb问题解决】Tomcat启动失败报错:ServerTomcatv9.0Serveratlocalhostfailedtostart.【JavaWeb问题解决】连接数据库出错:java.sql.SQLException:Nosuitabledriverfoundforjdbc:mysql://localhost:3306/【JavaWeb问题解决】使用过滤器Filter解决提交表单后显示乱码问题【JavaWeb问题解决】过滤器Filter进行编码过滤后页面空白、显示不了原因及解决办法
【Linux操作系统】相关技术文章:【Linux问题解决】UbuntuLinux安装gcc4.9g++4.9报错“没有可供安装的候选者”解决办法【Linux教程】UbuntuLinux更换源教程【Linux教程】如何实现在UbuntuLinux和windows之间复制粘贴、拖拽复制文件?【Linux问题解决】操作系统用C语言多线程编程对‘pthread_create’未定义的引用报错解决办法【Linux教程】Linux中用C语言多线程编程之pthread_join()函数【Linux操作系统、C语言】在Linux中用C语言进行OpenMP并行程序设计之常见指令、库函数和指令总结【VMware虚拟机问题解决】VMwareWorkstationpr无法在Windows上运行的解决方案【Linux问题解决】Ubuntu执行apt-get命令报错:无法获得锁/var/lib/dpkg/lock…解决方案
【Python】相关技术文章:【总结】Python与C语言、Java等语言基本语法的不同点【总结】分析Python中的循环技巧【总结】Python语言是编译型语言还是解释型语言?(Python程序执行过程)【总结】Python2和Python3的区别利用Python一层循环打印*型三角形【总结】Python与C语言、Java等语言基本语法的不同点【总结】你知道吗?——元组其实是可变的序列!【Python爬虫教程】Python爬虫基本流程及相关技术支持【Python问题解决】PyCharm中debug报错:usingcythonnotfound.pydevdebugger:process13108isconnecting原因及解决【Python总结】闭包及其应用
【IntelliJIDEA教程】相关技术文章:【IntellijIDEA教程】怎么自动清除无效的import导入包、清除无效的import导入包的快捷键【IntelliJIDEA教程】在IntelliJIDEA启动项目Warning:java:源值1.5已过时,将在未来所有发行版中删除解决办法【IntelliJIDEA教程】提示信息UnmappedSpringconfigurationfilesfound.PleaseconfigureSpringfacet.解决办法【IntelliJIDEA教程】怎么取消IntelliJIDEA对单词拼写的检查
【JupyterNotebook教程】相关技术文章:【Python教程】JupyterNotebook把一段很长的代码分成多行的解决办法】
奋斗中的编程菜鸟
关注
关注
18
点赞
踩
15
收藏
打赏
2
评论
【Python问题解决】利用Python读取文件时出现\ufeff的原因及解决办法
利用Python读取文件时出现\ufeff的原因及解决办法今天利用Python读取一个csv文件代码如下:importcsvwithopen('test.csv','r',encoding='UTF-8-sig')ascsvfile:csv_reader=csv.reader(csvfile)forrowincsv_reader:...
复制链接
扫一扫
专栏目录
python移除\ufeff
追求卓越,做到专业
06-25
2554
encoding不是用utf-8,使用utf-8-sig
f=open(r'a.txt',encoding='utf-8-sig')
Python读取csv文件出现\ufeff
m0_67105022的博客
03-04
222
把UTF-8编码改成UTF-8-sig编码即可
评论 2
您还未登录,请先
登录
后发表或查看评论
python-读取文件时出现\ufeff的原因及解决办法
扛锄头的农民
04-14
1317
在做读写csv练习时,发现找不到fieldnames,print出来,发现程序读取出来的表格内容里,多了一个\ufeff字符,研究一番,发现是encoding编码方式的问题。
withopen(source_path,'r',encoding='utf-8',newline='')assource_file:
把encoding的编码方式修改为UTF-8-sig就可以完美解决,如下:
withopen(source_path,'r',encoding='UTF-8-sig',newline='')
关于python导入csv文件出现“\ufeff“等问题的原因和解决方法
qq_45766362的博客
10-17
534
问题:导入csv文件时会出现"\ufeff"
出现这种情况一般是excel保存csv文件时选择时的“csvUTF-8”的保存格式。
用此格式保存的文件如果使用记事本打开就可以发现如下图所示,是带BOM标签的UTF-8文件
所以,在平时保存时请用"csv(逗号分隔)"的保存方式就不会出现异常。
(如下图)
导入csv文件无视BOM的方法
...
产生\ufeff问题的原因及解决办法
热门推荐
夜空下的凝视
04-28
3万+
今天遇到以下问题:
name=[]
withopen('唐诗宋词.txt','r',encoding='utf-8')asf:
foriinf:
fen=i.split(':')
print(fen[0],fen[1])
iffen[0].strip()=='诗名':
name.append(fen[1].strip())
print(nam...
python的"\ufeff"
jueji2020的博客
12-26
5334
python的"\ufeff"
当我们读取的文件或者写入文件时有时候会出现"\ufeff"非法字符,这个时候需要改变编码方式‘UTF-8‘为‘UTF-8-sig‘:
"UTF-8"的字节顺序在所有系统中都是一样的,没有字节序的问题,它不需要BOM(“ByteOrderMark”)。
"UTF-8-sig"即UTF-8withBOM需要提供BOM。
...
错误:非法字符:“\ufeff” Java python
低头学习,抬头看路
12-30
4112
JAVA
IDEA导入开源的项目的时候,非法字符:“\ufeff”,编码问题,这一般这个项目是用eclipse开发的。
主要原因是:Eclipse可以自动把UTF-8+BOM文件转为普通的UTF-8文件
解决办法:UTF-8换成GBK然后再换成UTF-8就好了
方法二:
将这些报错的文件拷贝到一个目录中,然后用notpad++打开,点击工具类上的编码,将以uft8格式编码转为以utf8无BOM格式编码,然后保存,再覆盖idea中对应的文件。
方法三:
将文件用..
Python——文本中读取到【\ufeff】解决方案
无限迭代中......
02-23
287
问题描述
['\ufeff诗名','贼退示官吏并序\n']
问题分析
文本保存时包含了BOM(ByteOrderMark,字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码)
解决方案
方法一:
使用utf-8-sig编码打开文件
name=[]
withopen('唐诗宋词.txt','r',encoding='utf-8-sig')asf:
foriinf:
fen=i.split(':')
prin
python移除\ufeff
sxf_123456的博客
01-09
1026
从csv文件中读取中文时,开头可能出现\ufeff,需要去掉\ufeff
出现\ufeff是因为使用的utf-8编码不是utf-8-sig编码。
需要使用utf-8-sig打开
F=open(r'a.txt',encoding='utf-8-sig')
...
python3字符串转列表出现\ufeff的解决方法
从零开始学习python--zeropython
01-11
392
在学习python从文件中读取文件,并将文件中的字符串转化为列表的时候,发现文件头多了一个\ufeff字符。
这个问题前段时间也遇到过了,同样是上网搜索了半天才解决,当时只是把问题解决就过去了,但是今天遇到同样的问题时,知道有这么一个解决方法,但是怎么做就是想不起来。
古人云,好记性不如烂笔头,一点没错。
进入正题。
几...
去除\ufeff
anqiuen8050的博客
04-02
174
语言:python
编程工具:pycharm
硬件环境:win1064位
读取文件过程中发现一个问题:已有记事本文件(非空),转码UTF-8,复制到pycharm中,在开始位置打印结果会出现\ufeff,打印代码如下
f=open('new2.txt',encoding='UTF-8')#打开文件,以UTF-8编码
l=[]
forline...
非法字符:‘\ufeff‘解决方案
谷哥的小弟
08-05
450
IDEA中项目编译时报错:java:非法字符:'\ufeff';图示如下:
【Python】\ufeff
weiambt的博客
06-14
266
问题:通过文件操作读入文本内容"English"后,内容前面多了\ufeff前缀
方法:open方法内加上参数:encoding='UTF-8-sig'
f=open(path,encoding='UTF-8-sig')
Python读取txt、csv等文件出现\ufeff、\u202a等非法字符解决方法
鹊踏枝-码农的专栏
07-02
1773
在利用Python读取txt、csv等文件时,有时会出现\ufeff、\u202a等非法字符,其若出现在解析文件路径中,如txt文件中为文件路径的话,通常会出现如下错误:“OSError:[WinError123]文件名、目录名或卷标语法不正确”,不注意非法字符的话,很难解决。
下面给出两种具体的解决方法,如下:
1.将要读取的文件的编码方式由“UTF-8”改为“UTF-8-sig”,示例代码如下:
withopen('keywords.txt',mode="r",encoding='u
python读取文件时出现\ufeff非法字符的处理思路
最新发布
一万年太久,只争朝夕
09-13
262
如下图所示,利用python读取文件后,在对字符串进行处理时,会出现。
交互式命令行的运行结果如下图所示,在图中就可以发现所读取的文件为。
库自动对编码格式进行判断(该库一般是不需要单独安装的)。
编码对文件进行读取,然后判断字符串里面是否存在关键字符。
产生该现象的原因是UTF的编码格式分为。
测试结果如下图所示,返回的结果是布尔类型。
本文目前采用的是一种笨办法,即可按照。
因此,需要先对其进行解码,将。
是没有字节序的问题的,而后者。
是按照二进制流读取文件内容,是。
,是存在字节序的区分的,编码的文件时需要选择。
python中的‘\ufeff‘-ValueError:couldnotconvertstringtofloat:‘\ufeff524.794072‘解决
qq_41968196的博客
06-16
261
用python读取csv文件时,发现不同的数据文件,列表的第一个数都会出现’\ufeff’多余字符(如下图),导致报错无法运行,注意:并不是出现多余空格换行之类的错误,所以用strip()、strip(‘\t’)行不通解决方法:
这是编码问题导致的错误,可以尝试改变编码方式或者手动移除非法字符:path_dir=file.readline().strip(‘\ufeff’)
(直接指定移除这几个字符就行,因为一直是这几个字符),我用的手动移除这些字符已解决(如下图)...
python读取csv文件头部出现\ufeff日期的解决办法
pxyyoona的博客
03-13
239
withopen(‘weather_csv/anyang.csv’,‘r’,encoding="utf-8-sig")asf。
将编码设置为encoding="utf-8-sig。
解决python读取配置文件报错\ufeff
韦不二的博客
03-05
531
在使用pythonconfigparser读取config.ini配置文件
importconfigparser
#实例化configParser对象
config=configparser.ConfigParser()
#-read读取ini文件
config.read(r'config/config.ini',encoding='utf8')
#-sections得到所有的section,并以列表形式返回
print('sections:',config.sections())
.
python读取文件后诡异的\ufeff
夏的博客
03-27
1万+
1.python环境 python:win32 3.6.3版本 运行环境介绍:在python读取txt文档的时候在首行会出现诡异的\ufeff,对比字符串就会对比失败2.调试代码 不多说上代码,要兑取的txt文档内容如下: 测试ufeff问题 python测试代码如下:#coding=utf-8
filePath=r'C:\Users\xzp\Desktop\p...
python读取文件\ufeff问题
shuihupo的博客
12-16
3467
df_ID=pd.read_csv(IDfile_path,encoding='utf-8',sep=',',header=None)
ID_list=list(df_ID.ix[:,0])
print(ID_list)
我的原始输出:
['\ufeffee170175-35de-43b8-ad92-a70600b6da3a','266d79c7-4ca9...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:点我我会动
设计师:我叫白小胖
返回首页
奋斗中的编程菜鸟
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
92
原创
16万+
周排名
126万+
总排名
77万+
访问
等级
6164
积分
358
粉丝
920
获赞
480
评论
2318
收藏
私信
关注
热门文章
Win10家庭版找不到组策略gpedit.msc怎么解决?
146143
连接数据库出错:java.sql.SQLException:Nosuitabledriverfoundforjdbc:mysql://localhost:3306/
73198
【Linux教程】UbuntuLinux更换源教程
64744
Python语言是编译型语言还是解释型语言?(Python程序执行过程)
28539
【已更新】【JavaWeb问题解决】Tomcat报错:ServerTomcatv9.0Serveratlocalhostfailedtostart.java.lang.
23834
分类专栏
面试
1篇
JavaWeb
17篇
Java
11篇
Python
10篇
React
2篇
十大经典排序算法
10篇
Linux
9篇
Android
2篇
操作系统
1篇
JupyterNotebook
1篇
IntellijIDEA
4篇
算法与数据结构
10篇
ACM
8篇
SpringBoot
Spring
Python爬虫
2篇
数据库
2篇
设计模式
Web前端开发
5篇
Spring MVC
2篇
计算机网络
4篇
电脑相关
6篇
最新评论
【JavaWeb问题解决】Tomcat报错:java.lang.ClassCastException:***cannotbecasttojavax.servlet.Filter解决办法
鸡腿饭留给乐:
依赖坐标javax.servlet-api,scope添加provide,重新刷新加载一下我就可以了。
原因是:依赖包和Tomcat里面的程序冲突了。
win10回收站右键属性此项目的属性未知问题怎么解决?
babydog_i:
导入不了代码。
显示错误:未将所有数据都成功写入到注册表中,某些项是由系统或其他进程打开的,或者你没有足够的权限执行此操作,咋个回事嘛。
。
。
大神救救我
【IntelliJIDEA教程】提示信息UnmappedSpringconfigurationfilesfound.PleaseconfigureSpringfacet.解决办法
请以你的名字呼唤我699:
这不高低品论下。
6666
【JS语法糖】常见的几种JS语法糖
SmallBoyz:
第1,6个不好用。
【Linux教程】UbuntuLinux更换源教程
肥肖:
下载GCC-4.4.还是一致报错
E:Package'gcc-4.4'hasnoinstallationcandidate
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
【计算机网络、浏览器、前端】HTTP状态码总结最全总结2.0
【前端教程】详解闭包
【JavaScript教程】ES6中的Promise对象详解
2020年8篇
2019年85篇
目录
目录
分类专栏
面试
1篇
JavaWeb
17篇
Java
11篇
Python
10篇
React
2篇
十大经典排序算法
10篇
Linux
9篇
Android
2篇
操作系统
1篇
JupyterNotebook
1篇
IntellijIDEA
4篇
算法与数据结构
10篇
ACM
8篇
SpringBoot
Spring
Python爬虫
2篇
数据库
2篇
设计模式
Web前端开发
5篇
Spring MVC
2篇
计算机网络
4篇
电脑相关
6篇
目录
评论 2
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
奋斗中的编程菜鸟
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1【Python问题解决】利用Python读取文件时出现\ufeff的原因及 ...
我们最开始是建立的.xslx文件,后又另存为.csv文件(UTF-8编码),而utf-8编码的文件时开头会有一个多余的字符\ufeff,这是我们读取文件也按UTF-8编码 ...
- 2'\ufeff' appears when I open a CSV file, even with "utf-8-sig ...
folder/file.csv", "r", encoding="utf-8-sig") as f: reader = csv.reader(f) file = list(reader). Th...
- 3python读取文件遇到的\ufeff问题
用python读取csv文件时,遇到首行的开头出现"\ufeff"的问题,查询发现是由于编码的问题,具体原因就不写了,这里只写一下解决方...
- 4python 字符串轉列表出現ufeff的解決方法 - 程式人生
在學習python從文件中讀取文件,並將文件中的字符串轉化為列表的時候,發現文件頭多了一個\ufeff字符。 這個問題前段時間也遇到過了,同樣是上網搜索了半天才解決, ...
- 5[2020鐵人賽Day15]糊裡糊塗Python就上手-CSV手到擒來
CSV檔案是純文字的檔案,編輯時可以直接使用文字編輯器,當然也可以使用Excel應用程式編輯。 ... 有發現讀出的內容有BOM標頭的符號「\ufeff」嗎?