sx出错怎么解决:在Python中解决中英文混杂出错的问题来源: 发布时间:星期三, 2009年9月2日 浏览:54次 评论:0
前两天用Python写了个小脚本其中有个需求是从个文本文件A中读取数据然后处理下写进个新文本文件B中不过A文件中既有英文也有中文
写出处理这个需求代码并不复杂随手就能写下类似代码: 1def write_a_line(line, fp): 不过这段旦碰到有汉字串时可能就会遇到下面问题: Traceback (most recent call last): 恩这种情况对于我们平时使用C#或者Java员来说确实比较头大从这个提示来看Python在写文件时对line变量进行了编码操作而且是针对line对象进行ASCII码编码 我们都知道Python是支持unicode而且还有针对unicode类型“unicode”要想让串称为unicode串可以在串引号前面加入个小写字母“u”翻阅Python文档我们可以发下write思路方法接收是str对象不过Python并不像C#它不用声明变量类型所以我们应该先看看line到底是个什么对象于是为了解决这个问题我把上面代码加了行: 1def write_a_line(line, fp): 代码运行的后我发现当line中有中文时候我们line变量类型是unicode从网上搜了下和unicode和写文件相关帖子可以得到个信息对这unicode对象调encode思路方法进行编码就可以正常写文件了于是代码又编程了下面样子: 1def write_a_line(line, fp): 这里要注意问题是不能棍子打死line可能会是unicode对象也可能是str对象不过我们只对unicode对象进行编码这下问题总算是解决了 0
相关文章
读者评论发表评论 |