def fx():
yield 语句
生成器表达式:
语法:
(x for x in 可迭代对象 if 真值表达式)
字节串 bytes 字节数组 bytearray
bytes(b'')不可变
bytearray(b'')可变
b'hello' #字面值 #解释执行器→根据字面值→创建一个对象
r'hello' #原始字符串 (raw)
bytes() ----> bytearray()
bytes(整型可迭代对象)
bytearray(整型可迭代对象)
bytes(整数n)
bytearray(整数n)
bytes(字符串,encoding='utf-8')
bytearray(字符串,encoding='utf-8')
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
bytearray 的方法:
BA代表bytearray
BA.clear() 清空字节数组
BA.append(n) 追加一个字节(n为0~255的整数)
BA.remove(value) 删除第一个出现的字节,如果没有出现则触发ValueError错误
BA.reverse() 字节顺讯反转
BA.decode(encoding='utf-8') 将bytearray转换为字符串
BA.find(sub[,start[,end]]) 查找sub字节数数组
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
什么是文件:
文件是用于保存数据存储的单位
文件通常用来长期存贮设置
文件中的数据是以字节为单位进行顺序存储的(文件就是一个字节串)
文件的操作步骤:
1.打开文件
2.读写文件
3.关闭文件
文件的打开函数 open
open(file,mode = 'rt')用于打开一个文件,返回此文件流对象,如果打开失败,
则会触发IOError错误
文件的关闭方法:
F.close() 关闭文件,释放系统资源
文件读取:
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的
长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
文件中的每个元素都会以原本的方式呈现出来。
注:此处文件如果在linux,则显示\n,如果在darwin(mac),直接显示换行
使用readline(num),num表示读取的一行的最大字符数,最多不超过这一行。
使用readlines(num),num表示读取的最大字符数,最后得出的是一个列表,每一行的内容
为该列表的一个元素。
注:最小读取不少于一行
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
文件操作分为两种类型的操作:
文本文件的操作
二进制文件的操作
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
文本文件模式:
mode = 'r'
1.默认文件中储存的内容为字符数据,以行为单位进行读取,采用系统默认的换行符
进行分割。
2.对于文本文件的读写,需要用字符串(str)进行读取和写入数据
各个操作系统默认的换行符:
linux 换行符'\n'
windows 换行符 '\r\n'
旧版Macintosh 换行符 '\r'
新版Mac OS 换行符 '\n'
示例:
try:
f = open('425write.py','a') #以只写的方式打开文件
print('打开文件成功!')
f.write('Im the first words\n')
f.write('Im the second words\n')
f.writelines(['Im the third words\n','Im the fourth words\n'])
f.close()
except IOError:print('打开文件失败!')
F.flush()用法:
把写入文件对象的缓存内容写入到磁盘
( 如果原本的执行文件没完成,且已经完成的部分少于磁盘写入最小单位,则不会
写入磁盘,直到执行文件结束,才会写入磁盘)
f = open('xxx.py','w')
f.write('ddddd\n')
f.flush() # 将缓冲的内容写入到磁盘上。
f.close()
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
二进制文件操作:
打开模式:'b' 例:open('xxx','b')
默认文件中储存的都是以字节为单位的二进制数据,通常有人为规定的格式,需要
以字节为单位进行读写。
二进制文件的读写:
需要用字节串(bytes)进行操作。
F.read(n)
F.readline()
F.readlines():
对于二进制文件,F.read()/F.readline()返回字节串,
F.readlines()返回字节串列表
F.read(n)代表最大字节数。
F.write(x)方法:
对于二进制文件,x必须为字节串
——————————————————————
f = open('xxx.py','wb')
print('文件打开成功')
f.write(b'hello')
s = '我是汉子'
f.write(s.encode('utf-8'))
# r = f.write(s.encode('utf-8')) 此处意思是:返回写入字节的数量
f.close()
print('文件change成功')
——————————————————————
f.tell() 显示当前读取位置。
F.seek(offset,whence=0)函数
offset 偏移量:
大于0的数代表向末尾方向移动
小于0的数代表向文件头方向移动
whence 相对位置:
0 代表从文件头开始偏移
1 代表从当前位置开始偏移
2 代表从文件末尾开始偏移
f.seek(10,0) f.seek(5,1) f.seek(-10,2)
注:以字节为单位,因此在文本文档中不能正常工作。
——————————————————————
汉字编码:
国标系列:(三种通用)
GB18030 (2字节或4字节编码,共有27533个)
GBK(2字节编码,共21003个)
GB2312(2字节编码,共6763个汉字)
国际标准:
UNICODE16/UNICODE32 <<<--->>>UTF-8
(常用于Linux / Mac OS X / IOS / Android)
编码字符串:
'gb2312'
'gbk'
'gb18030'
'utf-8'
'ascii'
以上用于xxx.encode(' ') xxx.decode(' ') 中,互相不能兼容
编码注释:
在源文件的第一行或者第二行写入如下格式的内容
# _*_ coding:gbk _*_
or
# _*_ coding:utf-8 _*_
是告诉python3 解释执行器当前的文件编码是什么