一、字符编码(了解)
人类的字符------------>>翻译---------->>数字
翻译的过程遵循的标准即字符编码(就是一个字符与数字一一对应关系的表)
什么是字符编码?一个字符如何对应一个特定数字的标准,这个标准称之为字符编码。
ascii
gbk:中文:2bytes 英文:1bytes
unicode:任意字符:2bytes
utf-8:中文:3bytes,英文1bytes
掌握:
1.以什么编码存的,就应该以该编码取
#coding:utf-8 :用于python解释器读取python文件,所以文件头指定的编码必须跟python文件存储时
用的编码一致。
2.unnicode-----编码encode---->utf--8
内存存unicode,硬盘存utf-8
3.utf-8---decode---->>>unicode
4.python3中str是以unicode编码形式存放的
x='你好'
x.encode('utf-8')------>bytes 得到结果就是bytes (bytes类型是得到的数据结果)
x='你好'
encode('utf-8')
5.bytes类型的用户
1、存到文件中
2、基于网络传输
申请一个内存空间,把变量存进去,又涉及到字符编码的问题。
unicode转成utf-8 把文件存到硬盘 unicode是不可以直接存到硬盘,想往硬盘存,把unicode转成一种可以存的形式,这种形式就是unicode 编码成其他编码,现在也是unicode转成其他编码。
内存往硬盘存,这其实是一个unicode编码的过程。二进制然后往硬盘里面写,以文件为单位往硬盘存。
硬盘只能存二进制,
字符串转成utf-8(bytes类型),功能一是直接可以往硬盘丢,功能二基于网络发走 你好encode 成二进制形式
文件由内存存到unicode存到硬盘也叫做内存存到硬盘
二、文件处理
f=open(r'C:ac.txt',mode='r',encoding='utf-8')
f.read()
f.close()
with open('a.txt',encoding='utf-8')as f1,
open('b.txt',encoding='utf-8')as f2,
open('c.txt',encoding='utf-8')as f3:
pass
with打开本地文件
文件的打开模式
默认是t模式,t不能单独使用,必须是rt,wt,at
r:只读模式
w:只写模式
a:只追加模式
操作方法
f.read() 全部文件内容读出来,读出来字符串类型,当作一个大的字符串 t模式无论读写都是以字符串为单位的
with open('上节课复习',encoding='utf-8')as f:
data=f.read()
f.readline() 单行
f.readlines()
f.write('111111111111 222222222 ')
f.writelines(['1111 ','2222 '])
循环读取文件每一行内容:for (while循环不如for简单)
for line in f:
print(line)
打开文件占两方面资源:
一方面是应用程序,一方面是操作系统
应用程序和操作系统的关系,应用程序每发起一个读文件或者写文件的操作,其实都是给操作系统内打开的文件发请求,由操作系统再帮你转化成硬盘的指令,
但凡要进行文件操作,这两方面资源都应回收,应用程序的资源不必考虑回收。