前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python: py2下 中文 的 文件读写 及 打印

python: py2下 中文 的 文件读写 及 打印

作者头像
JNingWei
发布2018-09-28 15:51:26
1.5K0
发布2018-09-28 15:51:26
举报
文章被收录于专栏:JNing的专栏JNing的专栏

  读写中文文件时,不需要考虑编码的情况。此时虽然可以正常从文件中读取中文,也可以正常地将中文写入文件中,但是无法正常打印中文字段到屏幕上:

代码语言:javascript
复制
# coding=utf-8

SRC_PATH = './src.txt'
DST_PATH = './dst.txt'

src_file = open(SRC_PATH, 'r')
dst_file = open(DST_PATH, 'w')
for line in src_file.readlines():
    dst_file.writelines(line)
    print line
src_file.close()
dst_file.close()
代码语言:javascript
复制
琛��夸腑蹇�����浜���

����涓�蹇��ㄤ�娴枫��

Hello world! Hello python!

  打印中文字段时,需要提前把系统编码由 ascii 转换到 utf-8

代码语言:javascript
复制
# coding=utf-8

SRC_PATH = './src.txt'
DST_PATH = './dst.txt'

import sys                       # new added
reload(sys)                      # new added
sys.setdefaultencoding('utf-8')  # new added

src_file = open(SRC_PATH, 'r')
dst_file = open(DST_PATH, 'w')
for line in src_file.readlines():
    dst_file.writelines(line)
    print line.encode('gb18030') # new added
src_file.close()
dst_file.close()
代码语言:javascript
复制
行政中心是北京。

金融中心在上海。

Hello world! Hello python!

  查看系统编码的具体转换状况:

代码语言:javascript
复制
# coding=utf-8

import sys
print ('origin_encoding = {}'.format(sys.getdefaultencoding()))
reload(sys)
sys.setdefaultencoding('utf-8')
print ('new_encoding = {}\n'.format(sys.getdefaultencoding()))
代码语言:javascript
复制
origin_encoding = ascii
new_encoding = utf-8

  在不转换系统编码下直接输出中文字段:

代码语言:javascript
复制
print u'中文'
print u'中文'.encode('gbk')
print u'中文'.encode('gb18030')
print
print '中文'
print u'中文'.encode('utf-8')
代码语言:javascript
复制
中文
中文
中文

涓���
涓���

  在转换系统编码下直接输出中文字段:

代码语言:javascript
复制
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
print u'中文'
print '中文'.encode('gbk')
print '中文'.encode('gb18030')
print u'中文'.encode('gbk')
print u'中文'.encode('gb18030')
print
print '中文'
print '中文'.encode('utf-8')
print u'中文'.encode('utf-8')
代码语言:javascript
复制
中文
中文
中文
中文
中文

涓���
涓���
涓���


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档