这个问题来自于一个小伙伴,他在处理中文数据时需要先把里面的文本过滤然后分词,因为里面有许多符号,不仅是中文标点符号,还有✳,emoji等奇怪的符号。

正常情况下,中文的str经过encode('utf-8')变成bytes,然后bytes经过decode('utf-8')变回中文。

原始文件是txt,那么先读进来,需要使用utf-8编码,当然你也可以使用GBK或者GB18030,这就看你的文本里面都是些啥内容了,读入的格式对后面保存的格式有重大影响,所以还是使用UTF-8吧:

1 with open ('a.txt', 'r', encoding='utf-8') as f:2   lines = f.readlines()

接下来是一系列的操作,过滤分词等等,然后在将结果写入txt的时候问题来了:经过处理的一行行文本现在已经变成了str(其实里面的内容还是这种b'\xe4\xb8\xad\xe6\x96\x87'),不能直接由字符串直接decode到中文,会报错:str has no attribute 'decode'....这是因为中间的那些操作已经把lines里面的bytes转成了str。所以写入的时候需要做转化:

1 item.encode('utf-8').decode('utf-8')

这种做法我在其他博客里都没有见到过,主要是被逼无奈,不然str格式直接写入就是一堆编码,不能阅读。原理是把原本不能直接decode的str(虽然内容是一堆编码)先转换回bytes,再decode成str。

这样就结束了吗?NO!

写入之前需要打开文件,大部分人打开的时候都忘记使用UTF-8编码,而windows下txt默认的是GBK编码,pycharm默认也是使用系统的编码,上面要是直接写入的话就会报错:

UnicodeEncodeError: 'gbk' codec can't encode character '\u2022' in position 0: illegal multibyte sequence

即对GBK格式txt文件写不进去UTF-8下的部分文本,所以写入前的打开文件和上面一样:

1 with open ('a.txt', 'w', encoding='utf-8') as f:2 f.write(item)

编码问题虽然网上的博客很多,但这个问题还是要自己遇到了在解决的过程中才能理解。

python能打开的txt文件编码_Python读写txt文件时的编码问题相关推荐

  1. python读txt很大_Python读写txt文件

    python读写txt文件 准备原始txt数据 3.14159265358979323846264338327950288419716939937510582097494459230781640628 ...

  2. python读压缩文件内容_Python读写压缩文件的方法

    问题 你想读写一个gzip或bz2格式的压缩文件. 解决方案 gzip 和bz2模块可以很容易的处理这些文件. 两个模块都为 open()函数提供了另外的实现来解决这个问题. 比如,为了以文本形式读取 ...

  3. pythontxt文件操作_Python读写txt文本文件的操作方法全解析

    一.文件的打开和创建 ? 1 2 3 4 5 >>> f= open('/tmp/test.txt') >>> f.read() 'hello python!\nh ...

  4. python读取docx文件出错_Python读写docx文件的方法

    这篇文章主要介绍了关于Python读写docx文件的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Python读写word文档有现成的库可以处理.我这里采用 python-doc ...

  5. python写入excel公式有哪些库_Python读写Excel文件第三方库汇总,你想要的都在这儿!...

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

  6. python与excel常用的第三方库_Python读写Excel文件第三方库汇总

    常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. http://xlrd.readthedocs.io/en/latest/ 1.xlrd ...

  7. python不同数据的读入_python读写不同编码txt文件_python读写txt文件

    python读写不同编码txt文件_python读写txt文件 以后整理规范 [python] view plaincopy import os import codecs filenames=os. ...

  8. python打开文件写文件乱码_Python读写文件乱码问题

    对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...

  9. python txt文件 报文分析_Python读写txt文本文件的操作方法全解析

    一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python!\nhello world! ...

最新文章

  1. 2020上的NLP有哪些研究风向?
  2. jquery datatable的详细用法
  3. 转lua解释执行脚本流程
  4. python内存的回收机制_python的内存管理和垃圾回收机制详解
  5. Mac 链接达梦数据库 DmJdbcDriver18.jar下载
  6. php 100元 换算,货币换算的PHP脚本
  7. 发卡网搭建源码可运营发卡网搭建源码
  8. 教学管理文件信息检索系统设计与实现
  9. 修身、齐家、治国、平天下
  10. Windows XP 系统下使用宽带上网真方便
  11. 往事如烟 - 父亲母亲的居木子豆腐
  12. 2019-2020新生训练class 1- 熟悉oj的使用方法贪心
  13. 研究意识问题为什么如此困难
  14. Redis集群——去中心化模式
  15. 享受高清,索尼笔记本电脑
  16. thinkjs + mysql 写后台接口的入坑指南
  17. 向ftp服务器 写入文件失败,关于从FTp服务器取回文件写入数据表时提示:file not found(2)...
  18. 基于python实现resnet_Python resnet_v1.resnet_v1_50方法代码示例
  19. 最简单的需求分析方法论
  20. 数据解读:中国铁路百年发展史,从“追赶者”到领先世界

热门文章

  1. LINUX   软RAID和硬RAI及软RAID的实现
  2. svn 配置安装方法(SlikSvn)
  3. 微信小程序 ssm装潢装修订单设计案例app
  4. 「企业管理」精诚CRM+——一体化管理企业业务流程
  5. 航空公司为什么要信息化、数字化转型?
  6. 『phphot』【SD2.0大会】毛新生:“傻瓜”软件将成用户最爱
  7. 纽曼u盘无法打开的解决方法 量产工具
  8. 微信营销案例一点通:屌丝变土豪
  9. 傅里叶变换回顾与总结
  10. Hp DL380服务器瘫痪如何恢复服务器数据(多图)