一、字符编码

重点 *****

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

  1. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...

  2. 19-3-8Python中编码的进阶、文件操作初识、深浅copy

    编码的进阶 ASCII:英文字母,数字,特殊符号,——>  二进制的对应关系 Str: 1个字符——> 1个字节 Unicode:万国码:世界上所有的文字与二进制的对应关系 1个字符——& ...

  3. Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  4. java字符编码,字符转码

    编码:String->byte[]; str.getBytes(charsetName) 解码:byte[]->String; new String(byte[],charsetName) ...

  5. java字节流和字符流,以及java文件操作

    A.首先说字节流:1.字节流在操作的时候不会用到缓冲区(也就是内存)2.字节流可用于任何类型的对象,包括二进制对象3.字节流处理单元为1个字节,操作字节和字节数组.InputStream是所有字节输入 ...

  6. Java字符流和字节流对文件操作

    记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writ ...

  7. Python全栈之路4--内置函数--文件操作

    上节重点回顾: 判断对象是否属于某个类,例如: 列表中有个数字,但是循环列表判断长度,用len会报错;因为int不支持len,所以要先判断属于某个类,然后再进行if判断. # isinstance(对 ...

  8. Python 自学基础(一)——元组 字典 文件操作

    格式化输出 name = input("请输入你的名字:") age = input("请输入你的年龄:") msg = ''' -------------in ...

  9. python基础知识-7-内存、深浅、文件操作

    python其他知识目录 1.一些对内存深入理解的案例 以下列举列表,列表/字典/集合这些可变类型都是一样的原理 变量是个地址,指向存储数据的内存空间的地址,它的实质就相当于c语言里的指针.变量和数据 ...

随机推荐

  1. 实用的JavaScript手册

    实用的JavaScript手册,收藏了,需要的时候可以翻阅 包含了 什么是JavaScript: JavaScript基础知识: JavaScript内置对象 JavaScript数据类型的操作方法 ...

  2. ListView点击事件失效(item里面有button按钮控件)解决方法

    ListView点击事件失效解决方法: 一般出现这个情况,就是你的item里面有按钮的点击事件,你的item里面有button控件,button控件是抢占焦点的,只要在你的item布局里面这样子写就可 ...

  3. mysql too many connection 解决

    最近的项目用了动态切换数据源起初感觉还好,后来发现每次切换数据库都会创建一个新的连接,这样就导致大量的sleep线程.而mysql的默认sleep时间是28800秒....默认最大连接数为151,这就 ...

  4. 【机器学习】K均值算法(I)

    K均值算法是一类非监督学习类,其可以通过观察样本的离散性来对样本进行分类. 例如,在对如下图所示的样本中进行聚类,则执行如下步骤 1:随机选取3个点作为聚类中心. 2:簇分配:遍历所有样本然后依据每个 ...

  5. mongodb内嵌文档的javaapi,增删改查

    数据结构: {"_id" : "000000001",  //Mongodb默认主键 "UID" : "000000001&quo ...

  6. Python的条件判断语句------if/else语句

    计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户的年龄,根据年龄打印不同的内容... Python程序中,能让计算机自己作出判断的语句就是if语句: 例: age = 25 ...

  7. js怎么把数字转化为字母(A,B.....AA,AB,..)

    function createCellPos( n ){ var ordA = 'A'.charCodeAt(0); var ordZ = 'Z'.charCodeAt(0); var len = o ...

  8. Wpf窗口中打开WinForm窗口

    获取wpf窗口对应的句柄窗口 using System; using System.Windows; using System.Windows.Interop; using IWin32Window ...

  9. python_redis简介与安装和使用

    一.简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  10. C++: find()函数的注意事项

    头文件: <algorithm> iterator find(iterator it1, iterator it2, &T);