python2.7 print 输出unicode到文件

python如何输出unicode到文件呢:我这样写都报错fout=open('test','w')print>>fout,u'\u66fe'直接print,u'\u66... python 如何输出unicode到文件呢:
我这样写都报错
fout=open('test','w')
print >>fout,u'\u66fe'

直接print ,u'\u66fe'可以
展开
 我来答
百度网友d57e73d
2013-08-07 · TA获得超过989个赞
知道小有建树答主
回答量:1043
采纳率:0%
帮助的人:861万
展开全部
import codecs

aaa = u'\u66fe'

unicode_file = codecs.open('out.txt','w', 'utf-16')

unicode_file.write(aaa)

unicode_file.close()


代码很简单

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友87b2a52
2013-08-07 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部

哈哈哈,系统的默认编码方式是ascii的,你可以把它改成utf8

给你个例子,新建一个文件,如下,运行即可:

import sys  
reload(sys)  
sys.setdefaultencoding('utf-8')
fout=open("text.txt","w")
fout.write(u'\u66fe')
fout.close()
追问
你好,你的方法是可以的,谢谢啦
我还想问一下就是如果我直接print >>fout,'曾'
代码中编码设定为utf-8,为什么也可以直接输出呢?
reload做了什么事,如果我想改回编码也得reload一次吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dtimes6
推荐于2016-05-01 · TA获得超过691个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:127万
展开全部

# write
fout=open('test','w');
fout.write(u'\u66fe'.encode('utf-8'));
# read
fin = open('test','r');
print fin.read().decode('utf-8');
更多追问追答
追问
你好,你的方法也是可以的,谢谢,但系统默认是用ascii编码的,怎么反而可以先编码成utf-8然后正常编码呢?
而且你的这个方式好像无法解决我的实际问题
我读入的文件是utf-8编码的文件,读入里面的中文到一个字符串,然后我想把这个字符串输出到其他文件时出的错。按你的代码的话我根本不需要解码吗?那样还是会有ascii 不能encoding的问题
你看看你这个可以改改适用于我的情况吗?
追答
就是因为系统用的是ascii编码的东西所以你不能直接写unicode的东西.因为write方法不支持.同样read方法也不支持读取多字节字符串.所以unicode的东西会被以二进制的东西读取.然后decode才能变成unicode的东西.

首先确认你读取的文件是utf-8编码的,不是GB2312的.decode是为了可以处理这些字符串.

如果直接复制文件:
fin = open('readfile', 'r');
fout = open('writefile','w');
fout.write(fin.read());
fin.close();
fout.close();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式