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'
#读取完成后一定要关闭文件打开,释放操作系统对文件的持有
最新文章
- js中let和var定义变量的区别
- 如何用angularjs给从后台传来数据添加链接
- Linux关机和重启命令
- SQLSERVER如何查看索引缺失
- 【整理】动态加载Web Services
- WebKit的CSS扩展(WebKit是私有属性)
- redis虚拟机模拟集群,节点,增加多端口命令
- wpa_supplicant 连接成功后,如何配置wlan0与br0 协调上网
- C#创建XML文件并保存
- (转)linux中常用的头文件
- 《第一行代码》学习笔记10-活动Activity(8)
- xcode - 移动手势
- hdu 3449 (有依赖的01背包)
- MFC中spin control使用
- Hadoop化繁为简(二)—层层递进轻松入门hdfs
- 【开源社交系统研发日记】利用 Docker 包 Laradock 服务器部署 Laravel &; ThinkSNS+ 等程序实战(多项目)
- C语言的字符串操作函数小结
- Windows 使用 Visual Studio 编译 caffe
- JSON获取地址
- python的高级数组之稀疏矩阵