Day 07 字符编码,文件操作
今日内容
1.字符编码:人识别的语言与机器识别的语言转换的媒介
2.字符与字节:字符占多少字节,字符串转换
3.文件操作:操作硬盘的一块区域
字符编码
重点:什么是字符编码
人类能识别的字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流,一定需要一个媒介,进行两种标识符的转化(两种表示符的对应关系)
对应关系形成的结构称之为:编码表
了解:编码表的发展史
1.ascii(ASCII):字母、数字、英文符号与计算机01标识符的对应关系
思考:如何将128个字符用01完全标签
二进制:11111111 => 255 => 1bytes(1字节)=>8个二进制位
2。中国:研究汉字与计算机01标识符的对应关系:gb2312 => GBK(***) =>GB18030
日本:Shift_JIS
棒子:Euc_kr
3.制造一个可以完成万国字符与计算机01标识符的对应关系的编码表
编码表:unicode表
py2:ascii,没有按万国编码,因为py2要诞生现有万国编码
py3:utf-8,采用编码来解释文本内容
思考:unicode与utf-8什么关系
unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存储数据
unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现的方式,变长存储数据
变长有点:(大量数据又是以英文存在,所以utf-8空间更小)传输速度更快
乱码:存数据与读数据采用的编码表不一致
软件打开文件读取数据的流程:
1. 打开软件
2. 往计算机发生一个打开文件的指令,来打开文件
3. 读取数据渲染给用户(存取编码不一致:乱码)
python解释器打开py文件
1. 打开软件(python解释器)
2. 往计算机发生一个打开文件的指令,来打开文件
3. 逐行解释打开的文件内容(存取编码不一致,无法正常解释,崩溃),将执行结果展示给用户
解释失败的原因:
py2默认按ASCII来解释文件内容 | py3默认按UTF-8来解释文件内容
文件头:# encoding: 编码表
功能:告诉py解释器按照什么编码来解释文件内容
编码解码
1.unicode字符串,默认字符串
s1 = u'abc你好\n不好'
...
abc你好
不好
2.字节字符串
s2 = b'abc123\xb7\xb7'
...
b'abc123\xb7\xb7'
3.原义字符串:不对字符串内存做任何操作
s3= r'abc你好\n不好'
...
abc你好\n不好
编码与解码
s = ‘123呵呵’
n_b = bytes(s,encodeing='utf-8')
===>b'123\xe5\x91\xb5\xe5\x91\xb5'
b = b'123\xe5\x91\xb5\xe5\x91\xb5'
n_b = str(s,encodfing='utf-8')
===>123呵呵
重点:
将u字符串编码成b字符串
print(u'您好'.encode('utf-8'))===>b'\xe4\xbd\xa0\xe5\xa5\xbd'
将b字符串解码成u字符串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))===>你好
文件操作
文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,操作方式 读read 写write
一、使用文件的三步骤
1.打开文件
变量名=文件空间
文件路径 操作模式(读|写)编码
f = open('a.txt','r',encoding='utf-8')
2.操作文件
data = f.read(3) #将所有内容读取出来,如果设置读取长度,按照规定长度读取数据
一次读取一行
line = f.readline()
按行一次性全部读出
lines = f.readlines()
逐行一行一行读取
l = []
for line in f:
l.apped(line)
print(l)
去重set读取
s = set()
for line in f:
s.add(line)
print(s)
3.关闭文件
f.close() #释放操作系统对文件的持有,变量f还被应用程序持有
#del f 系统自动回收
二、模式
主模式:r:读 | w:写 | a:追加
从模式:b:按字节操作 | t:按字符操作 | +:可读可写
了解:x:异常写 | U:被遗弃了
基础写
文件不存在:会新建文件,再操作文件
文件存在:先清空文件,再操作文件
w = open('b.txt','w',encoding='utf-8')
w.write('123')
w.close()
Day 07 字符编码,文件操作的更多相关文章
- python字符编码-文件操作
字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...
- day 08字符编码 文件处理
字符编码1.软件启动流程(打开notepad++文档)从硬盘将软件加载到内存上加载test.txt到内存中执行notepad++的代码,将test.txt打到屏幕上 python解释器也是一个应用软件 ...
- Python 字符编码-文件处理
.read #读取所有内容,光标移动到文件末尾.readable #判断文件是否可读.readline #读取一行内容,光标移动到第二行首部.readlines #读取每一行内容,存放于列表中.wri ...
- day 07 字符编码
一:字符编码 1.字符编码 什么是字符编码:将人能识别的字符转换为计算机能识别的01二进制的过程就是字符编码,转换的规则就是字符编码表 常用的编码表:ASCII.GBK.Unicode.UTF-8 了 ...
- python第二周数据类型 字符编码 文件处理
第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...
- nls 字符编码文件对应的国家语言
原文 http://ftp.twaren.net/cpatch/faq/tech/tech_nlsnt.txt * updated by Kii Ali, 12-11-2001 ftp://ftp.n ...
- Python自动化开发 - 字符编码、文件和集合
本节内容 字符编码 文件操作 集合 一.字符编码 1.编码 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.解决思路:数字与符号建立一对一映射,用不同数字表示不同符号. ASCI ...
- python文件操作:字符编码与文件处理
一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...
- 员工管理系统+字符编码+Python代码文件操作
员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1 debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...
随机推荐
- Entity Framework框架 (二)
一.前面一篇EF的介绍主要是通过linq语句,本篇主要是介绍一下不通过linq语句如何去操作EF执行查询sql语句与执行存储过程. 1. 其中的Acccout是输出参数对应的类.比如输出参数有三个值 ...
- 封装axios在vue-cli项目中便捷使用
首先创建一个vue-cli搭建起来的vue项目这个不用多说了. 安装axios,使用npm install axios --save命令安装依赖,这时候项目的package.json文件中的" ...
- h5设计图尺寸
640 标准的话 设计图: 640*1136 body,html 背景图的话需要640*1008的 这样才能整屏刚刚好 750 标准的话 设计图: 750*1334 body,html背景图的话,75 ...
- 联盟链初识以及Fabric环境搭建流程
这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中 ...
- Systemd程序及相关命令
Systemd程序及相关命令 Systemd是一款用于Linux操作系统系统管理和服务管理的工具.它向后兼容SysV init脚本,并且支持许多类似于startup系统服务的功能,比如系统快照(sna ...
- jQuery中异步问题:数据传递
最近写一个新页面,涉及到异步问题,为了获得异步过程中的数据,以下分享两种方法: 两种方法一句话总结: 方法一,Http请求后调用.then实现response的数据同步,然后根据resp接着处理: 方 ...
- jQuery对标签select优化:实现模糊搜索查询功能
由于select标签中的option条数较多,翻页查询比较麻烦,需要对select标签进行优化,解决方法是通过增加模糊查询功能来提高用户体验感. 优化后的界面如下: 在实现这个优化的过程中,参考了两个 ...
- 活动代码页437--修改windows的系统编码
1.首先查看系统编码 win+R打开运行,输入cmd回车,打开命令提示符窗口,输入chcp回车,会查询当前系统的活动代码页,它指明了当前系统使用的编码: 或者,打开cmd后,点击cmd窗口左上角图标, ...
- python3练习-发送IP地址到邮箱(使用日志)
看了下python下的logging模块,和java的log4j差不多,把之前的代码改为使用log配置的方式实现功能(需求和之前的相同,地址"http://www.cnblogs.com/G ...
- 服务调用restful或feign负载均衡ribbon