对于python2.7
字符串在Python2.7内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码成unicode,再从unicode编码成另一种编码。
先用一些编辑器(如editplus )看一下你的txt文件保存的是utf-8,还是gb2312或其他的。当你读行时可以这样
line = (file1.readline()).decode("utf-8").encode("gb2312")或
line = (file1.readline()).decode("gb2312").encode("utf-8")
注意:txt使用utf8编码的时候会默认在文件开头插入三个不可见字符。这个是windows用来判断txt编码是否为utf8的。所以如果你直接使用decode("utf-8")的话是得不到正确结果的。
必须先判断前三个字符是否是windows插入的那三个。这个python已经定义了一个常量了,可以直接和这个常量比较,如果一样就删除前三个字符然后再decode。
import codecs
data = open("Test.txt").read()
if data[:3] == codecs.BOM_UTF8:
data = data[3:]
print data.decode("utf-8")
延伸:
因为decode的函数原型是decode([encoding], [errors="strict"]),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
对于Python3
python3下比较简单,打开的时候指定encoding参数即可:open("txt.txt", encoding="gbk").read()。
以上这篇python读取中文txt文本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
文章浏览阅读294次。D. Powerful arraytime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of positive integersa1, a2, ..., anis given. Let us ...
文章浏览阅读321次。1 备份恢复参数文件RMAN> backup spfile format '/tmp/bak/spfile_%U_%T.ora'关闭数据库,并删除参数文件(…/dbs路径下的ora文件)RMAN> shutdown immediate;rm $ORACLE_HOME/dbs/*.ora启动数据库报错,恢复配置文件RMAN> startup nomountRM..._oracle rman的u%
文章浏览阅读558次。python报错:TypeError: ‘list‘ object is not callable_typeerror: '_virtuallist' object is not callable
文章浏览阅读4.6k次,点赞27次,收藏194次。、【向题看齐】408之计算机组成原理概念记忆总结_408 计算机组成复习
文章浏览阅读1.5k次。一、生产过程:1、获取路由消息,本地缓存不存在,重新获取(获取Topic发布信息:tryToFindTopicPublishInfo) 传入topic、消息字符串,根据传入的topic查询是否在本地缓存中,不在从NameSerer中获取topic并存入本地缓存:GET_ALL_TOPIC_LIST_FROM_NAMESERVER; (当topic不存在时,之前的版本可以默认自动创..._rocketmq topic怎么分布在多个broker上
文章浏览阅读1.7k次,点赞2次,收藏10次。综合实验:(1)域:在win2008中构建公司的域,域名为qf.com。(2)DHCP服务器:在win2003中构建DHCP服务器。(3)WEB服务器:在win2003中构建WEB服务器,要求发布两个站点,站点分别为oa.qf.com、CRM.qf.com。(4)文件共享服务器:在win2003中构建文件共享服务器,IT部门域用户可以读取文件、CEO域用户拥有完全控制权。(5)客户机:winxp为客户机,可以自动获取IP地址、加入域、无需输入账号密码可以直接访问Web服务器和共享服务器。_文件共享服务器加入到域共享服务器中
文章浏览阅读1.8w次,点赞10次,收藏41次。第4章 信息率失真函数主要内容 :4.1 平均失真和信息率失真函数4.2 离散信源和连续信源的R(D)的计算 4.1 平均失真和信息率失真函数4.1.1 失真函数假如某一信源X,输出样值为xi,xi{a1,…an},经过有失真的信源编码器,输出Y,样值为yj,yj {b1,…bm}。如果xi=yj,则认为没有失真;如果xi yj,那么就产生了失真。_信息率失真函数计算
文章浏览阅读130次。今天适配iPhone X遇到的问题,如下图,cell中间多出一条。造成这个问题的原因,就是创建的控件中有小数,用int 转换一下即可_incompatible connection types item positioned with a100mm spool length f
文章浏览阅读1k次,点赞2次,收藏8次。Java批量下载并打成压缩包zip格式废话不多说直接上代码@GetMapping("/download")//, String[] urls public void downloadFiles(@RequestParam("ids") String ids,HttpServletRequest request, HttpServletResponse response) { /*String[] urls = new String[]{""};*/ String[_java批量下载文件打成zip包
文章浏览阅读2.1k次。监控你的WEB服务器或者WEB主机运行是否正常与健康是非常重要的。你要确保用户始终可以打开你的网站并且网速不慢。服务器监控工具允许你收集和分析有关你的Web服务器的数据。有许多非常好的服务器监控解决方案,而为了省去你寻找方案的麻烦1. Performance Co-PilotPerformance Co-Pilot,简称PCP,是一个系统性能和分析框架。它从多个主机整理数据并实时的分析,帮你识别不..._linux 消息提醒工具 免费开源
文章浏览阅读2.9w次,点赞33次,收藏184次。上篇博文写了用仿真和综合来认识D触发器(通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)),这篇博文采用完全并行的方式来认识JK触发器。让我们迅速进入正题吧。J-K触发器的Verilog HDL程序代码//边沿JK触发器module jk_trigger(clk, j, k, q);input clk, j, k;output q;reg q;wire..._jk触发器74112仿真
文章浏览阅读182次。在创建一条Record时,如果我们需要对它的重复性做筛选,可以用到Duplicate, Matching Rule。但是一定要给足权限,注意他的Field是保证使用者对这个字段是有访问权限的。否则会出现,不具备字段权限的人创建Record不走Rule的尴尬局面。更新:假设现在限定一个Store下不允许出现两个相同Email 的Account,那么如果是创建的两个Account填写的Store是系统..._sfdc duplicate