一:字符编码

  1)什么是字符编码

    将人能识别的字符等高级标识符与计算机所能识别的二进制01进行转化,这之间的交流需要一个媒介,进行两种标识符之间的转化。

    字节的存储方式为八个二进制位

  2)乱码

    存放数据与读取数据采用的字符编码表不一致。

  3)软件的运行

    1.打开软件。

    2.往计算机发送一个打开文件的指令,来打开文件,发送到内存。

    3.读取文件数据渲染给用户(python中第三步中逐行解释打开的文件内容,存取编码不一致则无法正常解释,程序崩溃),将执行的结果展示给用户。

  4)python代码中的文件头

    必须有的格式为encoding:编码表名称

    例:encoding:utf-8

  5)万国字符可以和01识别符对应的编码表

    制造一个可以识别万国字符的编码表——unicode编码表

    py2中,默认编码表为:ASCII,没有采用万国编码表unicode

    py3中,默认编码表为:utf-8,采用了玩过编码表unicode

  

  6)unicode和utf-8的关系

    unicode和utf-8的体现方式不同,采用的都是同一张unicode编码表

    unicode:用两个字节存储汉字,用两个字节存储英文字母,缺点是当文件内容较多时,占用的存储空间更大,优点是读取效率极高。

    utf-8:用三到六个字节存储汉字,用两个字节存储英文字母,缺点是读取效率低,优点是当文件内容较多时,占用的存储空间小。

    存储数据通常用utf-8,传输用utf-8(占用存储空间小,传输效率高),内存中转化为unicode(读取效率极高),再通过utf-8发送给CPU。

  7)三种字符串

    例:s1=u""  unicode字符串

      s2=b""  bytes字节字符串

      s3=r""  原意字符串

  8)编码与解码(重点)

    encode:将unicode字符串转化为bytes字符串

    decode:将bytes字符串转化为unicode字符串

s="hello你好"
n_s=bytes(s,encoding="utf-8")
print(n_s) n_n_s=str(n_s,encoding="utf-8")
print(n_n_s) #两次返回的结果分别为:b'hello\xe4\xbd\xa0\xe5\xa5\xbd'
hello你好

二:文件的基本读取操作

  主操作:r(读取)    w(写入)    a(追加)

  从操作:b(按字节操作)    t(按字符操作)    +(可读可写)

  了解操作:  x(异常写)    u(被遗弃了)

  经过的三个过程:打开→操作→关闭(文件)

  1)文件的写入

    

obj=open("b.txt","w",encoding="utf-8")
info="hello"
obj.write(info)
obj.close()
#当路径中没有该文件时候,会自动创建一个文件
#写入完成后一定要关闭文件打开,释放操作系统对文件的持有

  2)文件的读出

obj=open("b.txt","r",encoding="utf-8")
info=obj.read()
print(info)
obj.close #返回值:hello'
#读取完成后一定要关闭文件打开,释放操作系统对文件的持有

python全栈开发_day7_字符编码,以及文件的基本读取的更多相关文章

  1. python全栈开发-Day7 字符编码总结

    python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...

  2. python全栈开发-Day6 字符编码

    python全栈开发-Day6 字符编码 一 .了解字符编码的知识储备 一 .计算机基础知识 二 .文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启 ...

  3. python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)

    一.上传文件 上传一个图片 使用input type="file",来上传一个文件.注意:form表单必须添加属性enctype="multipart/form-data ...

  4. python全栈开发学习_内容目录及链接

    python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...

  5. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  6. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  7. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  8. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  9. Win10构建Python全栈开发环境With WSL

    目录 Win10构建Python全栈开发环境With WSL 启动WSL 总结 对<Dev on Windows with WSL>的补充 Win10构建Python全栈开发环境With ...

随机推荐

  1. 重定向和请求转发后面加“return;”语句

    请求转发  RequestDispatcher 重定向     Redirect 代码的执行: 无论是 request.getRequestDispatcher(path).forward(reque ...

  2. ASP.NET’s compilation system

    Compilation in ASP.NET applications First, let’s take a moment to revisit compilation in the context ...

  3. win7 iis7 ftp配置

    1.安装ftp服务器 开始菜单找到控制面板>在左侧找到打开或关闭windows功能点击 弹出如下对话框, 在弹出的对话框中找到Internet信息服务,如下 然后如上图所示,选中ftp服务器复选 ...

  4. Amobea读写分离

    Amoeba的中文意思是变型虫,Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的    规则,将SQL请求发送到特定 ...

  5. config的配置文件

  6. 2014-3tomcat遇到的问题汇总

    tomcat启动不起来 端口占用:加了apache的ajp,所以要打开ajp_port,结果被占用了. 权限不够:chown:各个文件的权限都不够,特别是日志文件的. 配置问题:应用 servlet- ...

  7. Shapefile点图层转换为Shapefile线图层

    在Oracle数据表转换为Shapefile(一)和Oracle数据表转换为Shapefile(二)两篇文章中,分别介绍了两种不同的根据Oracle数据表生成Shapefile点图层的方法.本文在此基 ...

  8. Replication--发布属性immediate_sync

    在创建发布时,如果选择立即初始化,会将immediate_sync属性设置为true.如果immediate_sync属性为true时,snapshot文件和发布事务及发布命令将一直保留到指定的事务保 ...

  9. Centos iptables防火墙设置

    iptables的基本语法格式 iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]说明:表名.链名用于指定iptables命令所操作的表和链,命令选项用于指定 ...

  10. 利用Senparc.Weixin SDK 实现微信用户的授权,并获取信息

    前一段时间在学校做过一个项目,就是利用的Senparc.Weixin SDK 做的,于是翻看以前代码,虽然有注释,但是还是看的迷迷糊糊的,干脆就单步执行一遍看看是怎么实现的,然后就重新写了个简易的授权 ...