Python3零基础学习笔记十二

时间:2021-01-23 06:37:11
生成器函数内部必须要有yield语句
      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 解释执行器当前的文件编码是什么