一:字符编码

  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. sed的模式空间和保持空间

    摘自:https://blog.csdn.net/wanglelelihuanhuan/article/details/51591809 sed的模式空间和保持空间 2016年06月06日 17:15 ...

  2. Python 2.6 安装wxPython后提示"64.....32"错误解决办法

    ImportError: /usr/local/lib/wxPython-unicode-2.8.10.1/lib/python2.6/site-packages/wx-2.8-mac-unicode ...

  3. [GO]并的爬取捧腹的段子

    package main import ( "fmt" "strconv" "net/http" "regexp" &q ...

  4. SSH 密钥登录 SecureCRT

    https://www.qcloud.com/doc/product/213/2036 1.3. 使用SecureCRT登录 1.3.1. 复制公钥 登录腾讯云控制台,点击[云服务器]-[SSH密钥] ...

  5. ConsoleAppender

    http://logback.qos.ch/manual/appenders.html#ConsoleAppender <configuration> <appender name= ...

  6. 【Android学习】Service&Boradcast初步

    Service初步 掌握Service概念 掌握Service分类 Service开发能力具备 了解Service和intentService类的区别 重点难点 StartService和BoundS ...

  7. 软件加license的一种实现方法

    以前从没干过破解的勾当,这次确实必须要去破解一个,于是下了个反编译工具. 最终拿到反编译出来的文件,欣赏了一把它的license检测代码.原谅我的无知,以下代码在我看来还是比较新鲜,犬神请不要鄙视: ...

  8. [Postgres]合并多行到一列(转)

    转自http://csk83.sinaapp.com/?p=104 在实际应用中常常遇见这样的情况,见下表,我们现在需要统计出来每年每个人的工资总和以及发放月份. user_name year mon ...

  9. 在Centos 7 上面 安装MySQL 5.7 简录

    In a web browser, visit mysql.com page: https://dev.mysql.com/downloads/repo/yum/ Locate the desired ...

  10. Oracle定時email通知

    small_program_task 這張表的資料是待發送的email通知,再次之前已經有一個job會定時掃描固定時間內未接收到小程式回報狀態將其寫入到該表,send_flag為N,表示為寄過通知.e ...