位置: 编程技术 - 正文

Python编码爬坑指南(必看)(python坑人代码)

编辑:rootadmin

推荐整理分享Python编码爬坑指南(必看)(python坑人代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:爬虫编码问题,python编码的编码规范,python编码规则,python坑人代码,python编码用什么软件,python编码规则,python坑人代码,python坑人代码,内容如对您有帮助,希望把文章链接给更多的朋友!

自己最近有在学习python,这实在是一门非常短小精悍的语言,很喜欢这种语言精悍背后又有强大函数库支撑的语言。可是刚接触不久就遇到了让人头疼的关于编码的问题,在网上查了很多资料现在在这里做一番总结,权当一个记录也为后来的兄弟姐妹们服务,如果可以让您少走一些弯路本人将倍感荣幸。

先来描述下现象吧:

代码很简单我们使用os的listdir函数遍历了E:Torchlight II这个目录(Torchlight ?! :)),由于这个目录下有些文件是以中文命名的,所以在最后print结果时出现了乱码,像这样:

那么问题出在哪儿呢? 别急,我们一点一点来分析它。

从这里和这里我们几乎能够肯定的知道问题是出在:

看到这里不知你是否与我想的一样,能不能去设置console的编码,将其设置为能够理解中文字符的编码不就可以正常的显示出中文了吗?等等,让我们在多Google一会儿,

更详细的说明如下:

嚯嚯,看来刚才的想法是可行的只是不太优雅罢了,因为我们得去修改系统的设置。事实上上面的论述是基于linux环境的,在linux下可能需要我们去更改某个环境变量的值(LC_CTYPE or LANG);如果我们是在windows下面的话,console的编码设置是跟操作系统的区域设置相关的。比如在中文的win7环境下,console默认的编码就是GBK(cp)。你可以试试下面的代码:

Python编码爬坑指南(必看)(python坑人代码)

console的编码不好设置了那能否对stdout.out.encoding进行设置以达到我们的目的呢?很遗憾,答案是否定的,这家伙压根就是只读的:

没有办法了么?不会,其实我们离成功已经很近了,来,根据上面检索到的那些资料分析整理下看看我们现在掌握到的情况都有哪些:

是不是已经看出问题来了。最上面截图中那么奇奇怪怪的问号尖角符号就是因为字符串本身是按照gbk进行编码的,但是由于sys.stdout.encoding = utf-8,导致print会按照utf-8对input的数据进行encode从而转换为unicode字符。这,当然错误了。原因已经清楚了,来改改代码吧:

在代码中我们手动告诉了python对读入的字符串按章gbk编码来进行解码,而这一个动作之后数据已经是标准的unicode字符了,可以放心的交给print去打印输出了(即使这会儿sys.stdout.encoding = utf-8):

ps:

实际在google中还查到过很多相关的类似编码的问题,比如这里的,还有这里的。虽然问题的样子千变万化并且解决方式多种多样甚至是python自己的特定解决方式,比如这里。但这些问题本质都是一样的都是关于字符的编码和解码,搞清楚了其中的本质所有问题都能够迎刃而解。

以上这篇Python编码爬坑指南(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

深入理解python中的闭包和装饰器 python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认

Python备份目录及目录下的全部内容的实现方法 本来是想写一个东西可以直接调用TortoiseSVN保存当前代码到一个分枝下的。可惜调用SVN的部分还在研究。就先写了目录拷贝的部分。如果有喜欢研究Python

python中函数总结之装饰器闭包详解 1、前言函数也是一个对象,从而可以增加属性,使用句点来表示属性。如果内部函数的定义包含了在外部函数中定义的对象的引用(外部对象可以是在

标签: python坑人代码

本文链接地址:https://www.jiuchutong.com/biancheng/387608.html 转载请保留说明!

上一篇:浅析Python中的for 循环(python的for函数)

下一篇:深入理解python中的闭包和装饰器(深入python3)

  • 建筑企业差额征税如何开票
  • 工会经费计税依据
  • 普通发票可以抵税点吗
  • 工程施工科目有没有伙食费啊
  • 出纳可以做库存库吗
  • 房地产公司属于第几产业
  • 住宿税率是多少 5%
  • 非同一控制下的企业合并采用成本法
  • 存货暂估入账需要什么单据?
  • 养老失业工伤单位一般缴纳多少钱
  • 未能及时取得成功的成语
  • 让渡资产使用权收入的确认条件
  • 暂估入库商品用什么科目
  • 建筑行业如何结合个人例子写论文
  • 第三方代缴社保能查到原单位吗
  • 合同里包括产品销售和服务如何开票?
  • 中国银行结算包括哪些内容?怎么做会计分录?
  • 哪些发票不可进行进项税抵扣?
  • 事业单位职工福利费支出范围
  • 实收资本的账务处理题目
  • 开旅游公司有补贴吗
  • 建筑企业在增值税方面新出台的政策
  • 免征增值税和附加税区别
  • 纳税人税号后面的数字
  • 企业筹建期的工会金费怎么入账
  • 不动产公告期
  • 期初数据科目期初余额怎么录入?
  • 印花税按含税收入还是不含税收入
  • 企业银行承兑汇票
  • win10 专业版 企业版
  • 退休返聘工资如何申报个人所得税
  • 天猫的软件服务费指的是什么
  • 电脑安全系统无法启动怎么办
  • PHP+MySQL之Insert Into数据插入用法分析
  • php发送邮件的问题有哪些
  • 一个完整的php文件有哪些元素组成
  • 销售返利计入什么费用
  • phppoem
  • 商品先入库后得发票如何做账
  • arthas常用命令
  • php图文教程
  • PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
  • websocket基于http
  • 以前年度损益调整结转到本年利润吗
  • 预算凭证可以单张打印吗
  • 政府专项补贴税收
  • 无效发票进项税额抵扣
  • 电影院属于什么经济类型
  • 个体户增值税减免申报明细表怎么填
  • sql server使用sql语句
  • 医疗器械和医疗耗材是一回事吗
  • 公司购买手表可以做费用吗?
  • 股权转让需要出资吗
  • 差旅费所得税扣除标准2023
  • 库存商品盘盈怎么做账
  • 交车辆购置税需要什么材料
  • 其他债权投资有哪些科目
  • 建筑业异地预缴税款最新规定
  • 国有资产无偿划转协议
  • sql server数据库中的null(空值)
  • sql server如何修改表名
  • win10 rs5
  • fedora常用命令
  • centos6.5查看cpu信息
  • 并发控制三个问题
  • Win8.164位/32位KB3096053补丁下载 主要修复KB3069114安装问题
  • win7系统的桌面图标怎么调出来
  • vsftpd怎么配置
  • linux怎么使用
  • 详解各种汽油一吨等于多少升
  • jqueryui dialog
  • android studio安装过程中出现的问题
  • jquery input checked
  • 登录电子税务局显示时间错误如果解决
  • 国税系统公务员政审父母超生合格吗
  • 外埠企业如何在经营地缴税
  • 如何打印个税缴纳记录
  • 社保扣费为什么忽高忽低
  • 初级会计职称可以挂靠吗
  • 建安服务税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设