Python编程语言是一款比较新颖的编程语言,相对于其他语言来说,有很多不同的特点引起了大多数开发人员的兴趣。在这里我们可以先从Python print的相关应用方法来分析,初步了解这一语言的应用方式。

Python print会对输出的文本做自动的编码转换,而文件对象的write方法就不会做,因此,当一些字符串用print输出正常时,write到文件确不一定和print的一样。print转换的目的编码和环境变量有关,Windows XP是转换为gbk的。在linux下是按照环境变量来转换的。在linux下使用locale命令就可以看到。比如我的是:

[zhaowei@papaya zhaowei]$ locale

LANG=zh_CN

LC_CTYPE="zh_CN"

LC_NUMERIC="zh_CN"

LC_TIME="zh_CN"

LC_COLLATE="zh_CN"

LC_MONETARY="zh_CN"

LC_MESSAGES="zh_CN"

LC_PAPER="zh_CN"

LC_NAME="zh_CN"

LC_ADDRESS="zh_CN"

LC_TELEPHONE="zh_CN"

LC_MEASUREMENT="zh_CN"

LC_IDENTIFICATION="zh_CN"

LC_ALL=

这个时候会认为是gb2312的。在python中可以用locale模块来获得当前环境的编码:

import locale

print locale.getdefaultlocale()

Python print在输出时把字符串自动装换为这个编码。看看下面,"喆"这个字是很著名的一个在gb2312中没有的字,当把它转换为gb2312的时候是会出错的。

#-*- encoding: gb18030 -*-

import locale

import sys, encodings, encodings.aliases

# 现在a是unicode的

a= u'喆'

print a.encode("gb2312")

上面这段代码会报异常,就是这个原因。但如果是直接 print a 就可以输出来 (假设你的环境变量是GBK或者GB18030或者UTF-8)。如果你的环境变量是GB2312的,那这个print一样会报错!所以在处理其他地方来 的文本数据时,***不要用GB2312的编码,是中文数据,一定要用GB18030或者UTF-8!

而用文件对象的write写unicode的数据也是会出错的!需要做编码转换

#-*- encoding: gb18030 -*-

import locale

import sys, encodings, encodings.aliases

# 现在a是unicode的

a= u'喆'

f=open("aaa.txt", "w")

f.write(a)

f.close()

以上就是我们对Python print的相关介绍。

【编辑推荐】

【责任编辑:曹凯 TEL:(010)68476606】

点赞 0

在python中print 应用_Python print正确使用方法浅析相关推荐

  1. python中getopt函数_python getopt模块使用方法

    python中 getopt 模块,是专门用来处理命令行参数的 getop标准格式: 函数getopt(args, shortopts, longopts = []) shortopts 是短参数   ...

  2. python中len字典_Python 字典(Dictionary) len()方法

    Python 字典(Dictionary) len()方法 描述 Python 字典(Dictionary) len() 函数计算字典元素个数,即键的总数.高佣联盟 www.cgewang.com 语 ...

  3. python中remove用法_Python 列表 remove() 使用方法及示例

    Python 列表 remove() 使用方法及示例 remove()方法从列表中删除第一个匹配元素(作为参数传递). remove()方法的语法为:list.remove(element) remo ...

  4. python中pca算法_Python使用三种方法实现PCA算法

    主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...

  5. python中延时函数_Python延时操作实现方法示例

    本文实例讲述了Python延时操作实现方法.分享给大家供大家参考,具体如下: 在日常的开发中,往往会遇到这样的需求,需要某一个函数在一段时间之后才执行以达到某种特定的效果.此时,我们就需要某种机制,使 ...

  6. python中isin函数_Python numpy.isin函数方法的使用

    numpy.isin numpy.isin(element, test_elements, assume_unique=False, invert=False)     [source] 计算test ...

  7. python中reshape函数_Python numpy.reshape函数方法的使用

    numpy.reshape numpy.reshape(a, newshape, order='C')    [source] 在不更改数据的情况下为数组赋予新的shape.参数 :a :array_ ...

  8. python 中arange函数_Python numpy.arange函数方法的使用

    numpy.arange numpy.arange([start, ]stop, [step, ]dtype=None) 返回给定间隔内的均匀间隔的值. 在半开间隔[start,stop)(换句话说, ...

  9. python中full函数_Python numpy.full_like函数方法的使用

    numpy.full_like numpy.full_like(a, fill_value, dtype=None, order='K', subok=True)[source] 返回与给定数组具有相 ...

  10. 使用Python中自带的print输出带有颜色或者背景的字符串

    方法1: 使用Python中自带的print输出带有颜色或者背景的字符串 书写语法 print(\033[显示方式;前景色;背景色m输出内容\033[0m) 其中,显示方式.前景色.背景色都是可选参数 ...

最新文章

  1. IDEA下使用Jetty进行Debug模式调试【含演示GIF图】
  2. java 判断非ascii字符_文件名中的JavaMail和非ASCII字符
  3. python 的日志logging模块学习
  4. PPA格式Linux安装,Ubuntu12.04 用PPA安装fcitx和搜狗输入法附加组件Linux版
  5. 高通平台添加或者移植一个完整的camera
  6. Python+OpenGL基本图元绘制综合演示
  7. Maven学习总结(48)——利用wagon-maven-plugin插件自动化部署Jar包/war包到Linux远程服务器
  8. ajax 页面部分先显示图片后出数据
  9. 【js】js传递对象
  10. 【MyBatis】银行转账系统:MyBatis接口绑定方案及多参数传递、动态SQL、ThreadLocal线程容器、缓存
  11. 【Adobe安装】安装程序在Adobe Reader XI -Chinese Simplelified 安装完成之前被中断,错误代码150210
  12. php公众号模板推送开发教程,微信公众号之模板推送
  13. 金融时间序列及Matlab实现
  14. 三苯基膦(TPP)负载碘化BODIPY光敏剂(BDPI)纳米颗粒(PBDPI-TPP)介绍
  15. 作业4—文法和语言总结与梳理
  16. 关于数据库中存储密码的加密
  17. C++小白入职如何快速上手
  18. mysql乘法_mysql乘法
  19. windows10 系统家庭版转专业版小结
  20. FCKeditor使用帮助

热门文章

  1. 字符串转64位int(strtol,_atoi64)
  2. _RecordsetPtr使用方法
  3. 高考成绩等位分查询2021,等位分查询(等位分查询系统)
  4. js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...
  5. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范
  6. hibernate mysql annotation_hibernate学习笔记03-- hibernate + mysql + Annotation
  7. Design Pattern IDisposable Pattern C
  8. linux 内存泄露工具,linux下检查内存泄露的工具--mtrace
  9. rest_快速检查REST API是否有效的方法-从清单文件中获取详细信息
  10. hadoop_单元测试Java Hadoop作业