python代码文件的编码

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:

1 # coding=utf-8 ##以utf-8编码储存中文字符

2 print '中文'

像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果用unicode编码,有以下三种方式:

1 s1 = u'中文' #u表示用unicode编码方式储存信息

2 s2 = unicode('中文','gbk')

unicode是一个内置函数,第二个参数指示源字符串的编码格式。

decode是任何字符串具有的方法,将字符串转换成unicode格式,参数指示源字符串的编码格式。

encode也是任何字符串具有的方法,将字符串转换成参数指定的格式。

(2)、字符串的编码

用 u'汉字' 构造出来的是unicode类型,不用的话构造出来是str类型

str的编码是与系统环境相关的,一般就是sys.getfilesystemencoding()得到的值

所以从unicode转str,要用encode方法

从str转unicode,所以要用decode

例如:

# coding=utf-8 #默认编码格式为utf-8

s = u'中文' #unicode编码的文字

print s.encode('utf-8') #转换成utf-8格式输出

但当python中间处理非ASCII编码时,经常会出现如下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)

0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。

一个解决的方案是在代码中添加:

import sys

reload(sys)

sys.setdefaultencoding('utf-8') (其中utf-8为你想输出的字符编码)

解释:

sys.setdefaultencoding方法在python导入site.py后就删除了(具体代码查看site.py就可以看到)因此如果想用的话可以再重新load进入

总结:

u=u'unicode编码文字'

g=u.encode('gbk') #转换为gbk格式

print g #此时为乱码,因为当前环境为utf-8,gbk编码文字为乱码

str=g.decode('gbk').encode('utf-8') #以gbk编码格式读取g(因为他就是gbk编码的,需要事先知道它是GBK编码)并转换为utf-8格式输出

print str #正常显示中文(同文件输出)

安全的方法:

s.decode('gbk','ignore').encode('utf-8′) #以gbk编码读取(当然是读取gbk编码格式的文字了)并忽略错误的编码,转换成utf-8编码输出。

推荐学习《Python教程》!

python安装文件乱码_python输出到文件乱码如何解决相关推荐

  1. python安装csv出错_python处理csv文件问题解决贴

    实际工作中,碰到这么个问题:有个软件跑在linux系统上,其中用到一个数据库是csv格式的,但要向这个数据库添加600行新的数据,数据源同样是一个csv格式的文件. 有了目标,开始干活.首先想到的是, ...

  2. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  3. python 批量下载依赖_python通过txt文件批量安装依赖包的实现步骤

    python通过txt文件批量安装依赖包的实现步骤 如果要用某个开源框架,需要安装多个依赖包可以如下操作: 如依赖文件形式如下(可以不要版本号): txt文件名为requirements.txt,内容 ...

  4. excel数据导入python后不对齐_Python处理Excel文件的实用姿势

    真正的勇士,敢于直面银行卡上的余额,敢于正视磅秤上的数字. 表格数据是最常见的数据类型,Excel是日常办公中最常接触的文件. 上一章提过Python可以通过openpyxl模块处理Excel文件. ...

  5. python目录及文件操作_python路径及文件操作,10.22,10.27

    csv 和ini文件处理 作者: 一个小菜鸡 csv常见格式 nums     options      arguments 逗号分割值 comma-Separated Values CSV是一个被行 ...

  6. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  7. python保存文件到指定文件夹_python实现指定文件夹下的指定文件移动到指定位置...

    本文主要是写了一个将指定文件夹下的指定文件类型移动到指定位置,具体内容如下 # coding:utf-8 import os import shutil import sys reload(sys) ...

  8. python删除重复文字_python如何删除文件中重复的字段

    本文实例为大家分享了python如何删除文件中重复字段的具体代码,供大家参考,具体内容如下 原文件内容放在list中,新文件内容按行查找,如果没有出现在list中则写入第三个文件中. import c ...

  9. python设置文件编码_python批量修改文件编码格式的方法

    本文实例为大家分享了python批量修改文件编码格式的具体代码,供大家参考,具体内容如下 使用说明: 1.使用工具:Python2.7.6+chardet2.3.0,chardet2.3.0下载地址: ...

最新文章

  1. 全球及中国皮肤癌药物行业深度研究及项目可行性调研报告2022-2027年
  2. Android通过广播监测Wi-Fi和便携式热点开关状态
  3. ABP VNext 微服务演示,项目状态和路线图
  4. 大数据发展的问题与机遇
  5. comsenzexp mysql密码_ComsenzEXP X3
  6. 求解模糊运动角度matlab,动态模糊图像复原MATLAB程序
  7. TopCoder SRM502 Div1 1000 动态规划
  8. Wondershare Recoverit for Mac(数据恢复套件)
  9. Axure RP9授权码
  10. 【无人机航空摄影测量精品教程】目录:Pix4d、EPS、CC、PhotoScan、Godwork项目化作业流程及注意事项汇总
  11. 2023年全国最新二级建造师精选真题及答案49
  12. 2023年全国最新二级建造师精选真题及答案13
  13. 参考文献交叉引用的使用方法(word和wps)
  14. 解决 ClickOnce 发布出现: 清单中的引用与下载的程序集 *.exe 的标识不匹配 问题
  15. SQL注入中,注释#、 --+、 --%20、 %23到底是什么意思?sqli-labs-master
  16. 第六章 Wi-Fi扫描流程
  17. HTML的怎么使用,开发工具以及常用标签。
  18. 一不小心搞到了某大学的一堆校园上网帐号。
  19. linux的免费虚拟机,Win10下的Linux+非虚拟机+非双系统+可靠教程+免费
  20. 大数据笔试真题集锦---第十一章:Sqoop面试题

热门文章

  1. 人眼是具有插帧能力的
  2. 从源码分析DEARGUI之add_plot和add_scatter_series
  3. 用 vue 写小程序,基于 mpvue 框架重写 weui
  4. H3C大数据产品介绍
  5. 使用ISAPI_Rewrite做实用的重定向
  6. 你在过度测试你的软件吗?
  7. 【二分图最大匹配】【HDU2063】过山车
  8. 敏捷个人:激励   2011-11-26期
  9. 如何从多个项目创建 ASP.NET 应用程序以进行组开发
  10. 基于python的快速傅里叶变换FFT(二)