在python中print 应用_Python print正确使用方法浅析
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正确使用方法浅析相关推荐
- python中getopt函数_python getopt模块使用方法
python中 getopt 模块,是专门用来处理命令行参数的 getop标准格式: 函数getopt(args, shortopts, longopts = []) shortopts 是短参数 ...
- python中len字典_Python 字典(Dictionary) len()方法
Python 字典(Dictionary) len()方法 描述 Python 字典(Dictionary) len() 函数计算字典元素个数,即键的总数.高佣联盟 www.cgewang.com 语 ...
- python中remove用法_Python 列表 remove() 使用方法及示例
Python 列表 remove() 使用方法及示例 remove()方法从列表中删除第一个匹配元素(作为参数传递). remove()方法的语法为:list.remove(element) remo ...
- python中pca算法_Python使用三种方法实现PCA算法
主成分分析(PCA) vs 多元判别式分析(MDA) PCA和MDA都是线性变换的方法,二者关系密切.在PCA中,我们寻找数据集中最大化方差的成分,在MDA中,我们对类间最大散布的方向更感兴趣. 一句 ...
- python中延时函数_Python延时操作实现方法示例
本文实例讲述了Python延时操作实现方法.分享给大家供大家参考,具体如下: 在日常的开发中,往往会遇到这样的需求,需要某一个函数在一段时间之后才执行以达到某种特定的效果.此时,我们就需要某种机制,使 ...
- python中isin函数_Python numpy.isin函数方法的使用
numpy.isin numpy.isin(element, test_elements, assume_unique=False, invert=False) [source] 计算test ...
- python中reshape函数_Python numpy.reshape函数方法的使用
numpy.reshape numpy.reshape(a, newshape, order='C') [source] 在不更改数据的情况下为数组赋予新的shape.参数 :a :array_ ...
- python 中arange函数_Python numpy.arange函数方法的使用
numpy.arange numpy.arange([start, ]stop, [step, ]dtype=None) 返回给定间隔内的均匀间隔的值. 在半开间隔[start,stop)(换句话说, ...
- python中full函数_Python numpy.full_like函数方法的使用
numpy.full_like numpy.full_like(a, fill_value, dtype=None, order='K', subok=True)[source] 返回与给定数组具有相 ...
- 使用Python中自带的print输出带有颜色或者背景的字符串
方法1: 使用Python中自带的print输出带有颜色或者背景的字符串 书写语法 print(\033[显示方式;前景色;背景色m输出内容\033[0m) 其中,显示方式.前景色.背景色都是可选参数 ...
最新文章
- IDEA下使用Jetty进行Debug模式调试【含演示GIF图】
- java 判断非ascii字符_文件名中的JavaMail和非ASCII字符
- python 的日志logging模块学习
- PPA格式Linux安装,Ubuntu12.04 用PPA安装fcitx和搜狗输入法附加组件Linux版
- 高通平台添加或者移植一个完整的camera
- Python+OpenGL基本图元绘制综合演示
- Maven学习总结(48)——利用wagon-maven-plugin插件自动化部署Jar包/war包到Linux远程服务器
- ajax 页面部分先显示图片后出数据
- 【js】js传递对象
- 【MyBatis】银行转账系统:MyBatis接口绑定方案及多参数传递、动态SQL、ThreadLocal线程容器、缓存
- 【Adobe安装】安装程序在Adobe Reader XI -Chinese Simplelified 安装完成之前被中断,错误代码150210
- php公众号模板推送开发教程,微信公众号之模板推送
- 金融时间序列及Matlab实现
- 三苯基膦(TPP)负载碘化BODIPY光敏剂(BDPI)纳米颗粒(PBDPI-TPP)介绍
- 作业4—文法和语言总结与梳理
- 关于数据库中存储密码的加密
- C++小白入职如何快速上手
- mysql乘法_mysql乘法
- windows10 系统家庭版转专业版小结
- FCKeditor使用帮助
热门文章
- 字符串转64位int(strtol,_atoi64)
- _RecordsetPtr使用方法
- 高考成绩等位分查询2021,等位分查询(等位分查询系统)
- js 正则表达式奇偶字符串替换_Python中的正则表达式及其常用匹配函数用法简介...
- mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范
- hibernate mysql annotation_hibernate学习笔记03-- hibernate + mysql + Annotation
- Design Pattern IDisposable Pattern C
- linux 内存泄露工具,linux下检查内存泄露的工具--mtrace
- rest_快速检查REST API是否有效的方法-从清单文件中获取详细信息
- hadoop_单元测试Java Hadoop作业