python全栈开发_day7_字符编码,以及文件的基本读取
一:字符编码
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_字符编码,以及文件的基本读取的更多相关文章
- python全栈开发-Day7 字符编码总结
python全栈开发-Day7 字符编码总结 一.字符编码总结 1.什么是字符编码 人类的字符--------->翻译--------->数字 翻译的过程遵循的标准即字符编码(就是一个字符 ...
- python全栈开发-Day6 字符编码
python全栈开发-Day6 字符编码 一 .了解字符编码的知识储备 一 .计算机基础知识 二 .文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启 ...
- python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)
一.上传文件 上传一个图片 使用input type="file",来上传一个文件.注意:form表单必须添加属性enctype="multipart/form-data ...
- python全栈开发学习_内容目录及链接
python全栈开发学习_day1_计算机五大组成部分及操作系统 python全栈开发学习_day2_语言种类及变量 python全栈开发_day3_数据类型,输入输出及运算符 python全栈开发_ ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Win10构建Python全栈开发环境With WSL
目录 Win10构建Python全栈开发环境With WSL 启动WSL 总结 对<Dev on Windows with WSL>的补充 Win10构建Python全栈开发环境With ...
随机推荐
- sed的模式空间和保持空间
摘自:https://blog.csdn.net/wanglelelihuanhuan/article/details/51591809 sed的模式空间和保持空间 2016年06月06日 17:15 ...
- 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 ...
- [GO]并的爬取捧腹的段子
package main import ( "fmt" "strconv" "net/http" "regexp" &q ...
- SSH 密钥登录 SecureCRT
https://www.qcloud.com/doc/product/213/2036 1.3. 使用SecureCRT登录 1.3.1. 复制公钥 登录腾讯云控制台,点击[云服务器]-[SSH密钥] ...
- ConsoleAppender
http://logback.qos.ch/manual/appenders.html#ConsoleAppender <configuration> <appender name= ...
- 【Android学习】Service&Boradcast初步
Service初步 掌握Service概念 掌握Service分类 Service开发能力具备 了解Service和intentService类的区别 重点难点 StartService和BoundS ...
- 软件加license的一种实现方法
以前从没干过破解的勾当,这次确实必须要去破解一个,于是下了个反编译工具. 最终拿到反编译出来的文件,欣赏了一把它的license检测代码.原谅我的无知,以下代码在我看来还是比较新鲜,犬神请不要鄙视: ...
- [Postgres]合并多行到一列(转)
转自http://csk83.sinaapp.com/?p=104 在实际应用中常常遇见这样的情况,见下表,我们现在需要统计出来每年每个人的工资总和以及发放月份. user_name year mon ...
- 在Centos 7 上面 安装MySQL 5.7 简录
In a web browser, visit mysql.com page: https://dev.mysql.com/downloads/repo/yum/ Locate the desired ...
- Oracle定時email通知
small_program_task 這張表的資料是待發送的email通知,再次之前已經有一個job會定時掃描固定時間內未接收到小程式回報狀態將其寫入到該表,send_flag為N,表示為寄過通知.e ...