今日内容

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 字符编码,文件操作的更多相关文章

  1. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  2. day 08字符编码 文件处理

    字符编码1.软件启动流程(打开notepad++文档)从硬盘将软件加载到内存上加载test.txt到内存中执行notepad++的代码,将test.txt打到屏幕上 python解释器也是一个应用软件 ...

  3. Python 字符编码-文件处理

    .read #读取所有内容,光标移动到文件末尾.readable #判断文件是否可读.readline #读取一行内容,光标移动到第二行首部.readlines #读取每一行内容,存放于列表中.wri ...

  4. day 07 字符编码

    一:字符编码 1.字符编码 什么是字符编码:将人能识别的字符转换为计算机能识别的01二进制的过程就是字符编码,转换的规则就是字符编码表 常用的编码表:ASCII.GBK.Unicode.UTF-8 了 ...

  5. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  6. nls 字符编码文件对应的国家语言

    原文 http://ftp.twaren.net/cpatch/faq/tech/tech_nlsnt.txt * updated by Kii Ali, 12-11-2001 ftp://ftp.n ...

  7. Python自动化开发 - 字符编码、文件和集合

    本节内容 字符编码 文件操作 集合 一.字符编码 1.编码 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.解决思路:数字与符号建立一对一映射,用不同数字表示不同符号. ASCI ...

  8. python文件操作:字符编码与文件处理

    一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...

  9. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

随机推荐

  1. Windows下的Jupyter Notebook 安装与自定义启动(图文详解)

    不多说,直接上干货! 前期博客 Windows下的Python 3.6.1的下载与安装(适合32bits和64bits)(图文详解) 这是我自定义的Python 的安装目录 (D:\SoftWare\ ...

  2. 不正常退出vim产生swp文件的解决方法

    vi -r README.txt恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件. vi -r查看生成的交换文件 rm .README.txt.swp删除交换文件 搞定!下次打开文件就可以正常编 ...

  3. node多项目合一打包

    因为公司的需要,需要将多个项目合并为一个项目,具体要求是:多个项目中的公用部分提取出来,单独维护,业务部分则分别在不同的目录中,而我们的项目配置文件则作为公用部分单独维护,在项目打包的时候遇到一个问题 ...

  4. ranch 源码分析(一)

    以前写了一个ranch的处理流程,http://www.cnblogs.com/tudou008/p/5197314.html ,就只有一张图,不是很清晰,现在有空做个源码分析. ranch的源码(版 ...

  5. fcgi-2.4.1 fastcgi开发包 make编译出错

    fcgio.cpp: In destructor 'virtual fcgi_streambuf::~fcgi_streambuf()':fcgio.cpp:50: error: 'EOF' was ...

  6. angular4,6 引入第三方插件的方法

    话不多说直入主题,最常见的有三种方式来引用第三方插件,下面以jquery插件及基于JQuery的两款插件:nicescroll和rangeSlider为例. 一.第一种方式:在.angular-cli ...

  7. c函数 文件名通配符

    static bool IsMatched(CONST TCHAR* p, CONST TCHAR* q) { CONST TCHAR *r, *z, *x = _T(""); f ...

  8. vs中正常IIS发布网站后css样式、图片丢失jQuery报错 $ is not defined

    问题描述: VS运行能够正常看到样式和图片 ,IIS发布后样式丢失.图片不显示.并且jQuery报错“$ is not defined”. 问题分析: 1.首先怀疑是样式文件.图片等发布的时候没有发布 ...

  9. H5 audio 通过canplaythrough预加载音乐

    1.背景 微信里做H5活动页面,对音乐使用autoplay, android没问题,IOS半天播不出来,因此考虑对音乐进行预加载(不是preload) <!DOCTYPE html> &l ...

  10. window配置 mysql 详细步骤

    1.配置环境变量:右击“我的电脑”-->"高级"-->"环境变量" 3)在(系统变量)path变量(已存在不用新建)添加变量值:G:\MySQL\m ...