Python编程Day7——字符编码、字符与字节、文件操作
一、字符编码
重点 *****
1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode()
4. 了解:编码表的发展史
A、ascii(ASCII)表:字母、数字、英文符号与计算机01标识符的对应关系
思考:如何将128个字符用01完全标签
二进制:1111111=====>>>255====>>1bytes(1字节)====>>8个二进制位 B、中国研究汉字与计算机01标识符的对应关系:gb2312====》》GBK===》》GB18030 日本:Shift——JIS C、制造一个可以完成万国与计算机01标识符的对应关系编码表 编码表;Unicode表
py2:ascii,没有按万国编码,原因py2要诞生要先有万国编码
py3:utf-8.采用万国编码来解释文本内容
编码类型 | 计算机存取方式 | 汉字存储 | 英文存储 | 空间节省 | 读取效率 |
Unicod |
内存 | 2个字节 | 2个字节 | 占据空间较多 | 极高 |
utf-8 |
硬盘、cpu | 3-6个字节 | 1个字节 | 占据空间较少 | 低 |
5、文件头****
告诉puthon解释器按照什么编码来解释文件内容
功能:编码解码:原义字符串,不对字符串内部做任何操作(eg::\n的转化)
r'abc\nabc'>>>>输出'abc\nabc'
u''之间转化b
编码:u''.encode('utf-8')|bytes(b'',encode('utf-8'))
解码:b''.ecode('utf-8')|str(b'',encode('utf-8'))
知识储备
电脑三大核心:cpu - 内存 - 硬盘(数据的存取过程)
软件及python解释器读取文件过程:启动 - 读取 - 展示|解释执行
python2环境的文件头:# coding: 编码格式
简介与发展
1. ascii - 各国编码 - 万国编码
2. 存取不一致的乱码现象
3. unicode与utf-8
核心
编码操作:编码encode()、解码decode()
二、字符与字节
重点*****
1. 字节的存储方式:8个二进制位
2. 字符所占字节数:根据编码的不同,所占字节数可能不同
了解
u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')
3、三种字符串
Unicode字符串,默认字符串
s1=u'abc你好\n不好'
print(s1) #>>>输出abc你好 n不好
字节字符串
s2=b'abc'
print(s2) #>>>输出b'abc'
原义字符串:不对字符串内部做任何操作
s3=r'abc你好\n不好'
print(s3) #>>>输出abc你好\n不好
4、编码与解码
s='123呵呵'
n_b=bytes(s,encoding='utf-8')
print(n_b) # 输出结果为 b'123\xe5\x91\xb5\xe5\x91\xb5'
b=b'123\xe5\x91\xb5\xe5\x91\xb5'
n_s=str(b,encoding='GBK') # 可以换成gbk的字符编码
print(n_s)
5、 重点********
将u字符串编码b字符串
print(u'你好'.encode('utf-8'))
将b字符串解码成u字符串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))
三、文件操作
重点*****
1. 文件操作的三步骤:打开文件 - 使用文件 - 关闭文件
A、打开文件,变量名=文件空间 文件路径、操作模式(读/写)、编码
f=open('a.txt','r',ebcoding='utf-8')(新建a.txt文件-填写相应的内容)
B、操作文件
data=f.read(2) 将所有内容读取出来,如果设置读取长度如(2),按照规定长度读取数据
print(data)
一次读取一行
line=f.readline()
print(line)
line=f.readline()
print(line)
按行一次性全部读取
lines=f.readlines()
print(lines)
逐步一行一行读取
l=[]
for line in f:
l.append(line)
print(l)
去重
s=set()
for line in f:
s.add(line)
print(s)
C、关闭文件
f.close() 是否操作心态对文件的持有,变量f还被应用程序持有
del f 系统自动回收
print(f)
2. 文件操作三要素:文件源、操作模式、编码
3. with语法:with open(...) as 别名, ..., open(...) as 别名: pass
4. 重点方法:read() | write() | readline() | close() | f.flush() | f.seek()
5、操作模式 w
主模式:r:读 | w:写 | a追加
从模式:b :按字节操作照| t:按照字符操作 | +:可读可写
了解:x :异常写| U;被遗弃了
基础写
文件不存在:会新建文件,再操作文件
问价存在:先清空文件,在操作文件
w = open('b.txt', 'w', encoding='utf-8')
w.write('456') w.close() print('end')
操作方法
读:read() | readline() | readlines()
写:write() | writelines() | flush()
光标:seek() | tell()
特征:encoding | closed
了解:readable() | writable() | name
案例
1. 文件复制
2. 文件修改
了解:py文件脚本机制
Python编程Day7——字符编码、字符与字节、文件操作的更多相关文章
- Python编程笔记二进制、字符编码、数据类型
Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...
- 19-3-8Python中编码的进阶、文件操作初识、深浅copy
编码的进阶 ASCII:英文字母,数字,特殊符号,——> 二进制的对应关系 Str: 1个字符——> 1个字节 Unicode:万国码:世界上所有的文字与二进制的对应关系 1个字符——& ...
- Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器
专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...
- java字符编码,字符转码
编码:String->byte[]; str.getBytes(charsetName) 解码:byte[]->String; new String(byte[],charsetName) ...
- java字节流和字符流,以及java文件操作
A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...
- Java字符流和字节流对文件操作
记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writ ...
- Python全栈之路4--内置函数--文件操作
上节重点回顾: 判断对象是否属于某个类,例如: 列表中有个数字,但是循环列表判断长度,用len会报错;因为int不支持len,所以要先判断属于某个类,然后再进行if判断. # isinstance(对 ...
- Python 自学基础(一)——元组 字典 文件操作
格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...
- python基础知识-7-内存、深浅、文件操作
python其他知识目录 1.一些对内存深入理解的案例 以下列举列表,列表/字典/集合这些可变类型都是一样的原理 变量是个地址,指向存储数据的内存空间的地址,它的实质就相当于c语言里的指针.变量和数据 ...
随机推荐
- Maven 的这 7 个问题你思考过没有?
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...
- AX_xSession
Session xSession = new xSession(); ; xSession.userId();
- 虚拟DOM
传统的 DOM 操作是直接在 DOM 上操作,当需要修改一系列元素中的值时,就会直接对 DOM 进行操作.如果需要操作的DOM元素过多,则成本太高,而采用 Virtual DOM 则会对需要修改的 D ...
- Startls Back 引起的 win10升级之后的闪屏问题
win10 更新之后出现闪频问题. 有人说是和startls back 有关,需要卸载startls back, 但是进入安全模式下显示此 程序无法打开,无法卸载. 后来看到有人更新到startls ...
- makefile与动态链接库案例分析——动态库链接动态库
http://blog.csdn.net/huqinwei987/article/details/50517780 背景:效率考虑,要重用把服务器主备机方案,以库Libmdpha(高可用)的形式加进主 ...
- 对java web开发的理解
写完后发现自己好像很多都不知道,管它的,只要自己了解就行了,以后有时间再把这个完善一下吧 感觉就是三层架构翻来覆去的用,以这个为基础不停的扩展,前提是数据量一定要大,不然这些扩展就没啥意思 这是数据量 ...
- cpu的工作原理
- centos7 防火墙相关命令
启动:systemctl start firewalld禁用:systemctl stop firewalld重新载入规则:firewall-cmd --reload查看所有打开的端口:firewal ...
- 网页偶现性崩溃-chrome
简介: 项目前台框架:Angular2 + Bootstrap(日期等组件) + Echarts + 响应式(包括页面.字体缩放:rem) chrome版本:多个版本测试均有此问题. 表现: 订单详情 ...
- Debian 9.x "stretch" 安装 vnStat 统计服务器流量
vnStat 是一款开源的 Linux 下统计网卡流量的软件,可以很方便地查看当前.当天.当月的流量统计报告,下面我们介绍下在 Debian 9.x 下安装 vnstat 的简单方法 首先,使用 ip ...