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'可以 展开
我这样写都报错
fout=open('test','w')
print >>fout,u'\u66fe'
直接print ,u'\u66fe'可以 展开
3个回答
展开全部
import codecs
aaa = u'\u66fe'
unicode_file = codecs.open('out.txt','w', 'utf-16')
unicode_file.write(aaa)
unicode_file.close()
代码很简单
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-07 · 知道合伙人软件行家
关注
展开全部
哈哈哈,系统的默认编码方式是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一次吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
# 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();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询