一、字符编码

重点 *****

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. SCUCTF2018web部分wp

    [签到] Web部分的签到题,打开连接后F12审查元素 可以看到有被隐藏起来的JSFuck密码,解码运行后可得flag [计算器] 打开后界面如上图,要求简单来说就是回答20道数学题目,每道题最多3s ...

  2. Effective C++ 笔记:条款 34 实现继承和接口继承

    Differentiate between inheritance of interface and inheritance of implementation. 行为含义 声明一个pure virt ...

  3. Desktop Central —— Windows 管理工具

    Desktop Central —— Windows 管理工具 定期维护对于保持系统性能平稳必不可少.诸如磁盘检查.磁盘碎片整理程序之类的工具在系统维护中至关重要.因为管理员很难定期手动执行维护. D ...

  4. adb安装apk

    1.    安装配置 1.1安装包 下载adb.zip,解压至本机 1.2环境配置 将adb安装路径加入path中 2.    安装apk 使用数据线将Android手机与电脑连接,打开手机usb调试 ...

  5. vue.js报错:Module build failed: Error: No parser and no file path given, couldn't infer a parser.

    ERROR Failed to compile with 2 errors 12:00:33 error in ./src/App.vue Module build failed: Error: No ...

  6. Linux环境(Centos7)下部署.NetCore2.0的Web应用

    Web应用基于Windows环境下开发,然后部署到Linux 1.进入VS2017,点击新建->项目->.NetCore->ASP.NET Core Web应用程序,确定 2.选择W ...

  7. C++枚举类型Enum及C++11强枚举类型用法

    C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法: //W A S D 前.后.左.右行走 enum Keydown{ Forward= ...

  8. U-Boot Makefile分析(5)主控Makefile分析

    这次分析源码根目录下的Makefile,它负责读入配置过的信息,通过OBJS.LIBS等变量设置能够参与镜像链接的目标文件,设定编译的目标等等. HOSTARCH := $(shell uname - ...

  9. java实现中缀表达式转后缀表达式

    package postfix; import java.util.Stack; /** * * @author DELL 将中缀表达式转化为后缀表达式 */ public class Express ...

  10. scrapy爬虫之模拟ajax post请求获取数据

    实质:分析真实请求地址,根据规则构造新地址从而获得数据. 分析发现数据是通过异步ajax方式→post 获得的 于是通过分析response ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 发现每次翻页 网 ...