美文网首页
Day12 生成式、文件

Day12 生成式、文件

作者: ChiAo1fei | 来源:发表于2019-01-08 17:09 被阅读0次

    生成式

    1. 什么是生成式

      生成式就是生成器的一种特殊写法

    2. 写法

      • 生成器 = (表达式 for 变量 in 序列) ==> 让变量去序列中取值,每取一个值就将对应的表达式的值作为生成器的元素

        def 函数名():
        ​ for 变量 in 序列:
        ​ yield 表达式

      • 生成器 = (表达式 for 变量 in 序列 if 条件语句)

        def 函数名():
        ​ for 变量 in 序列:
        ​ if 条件语句:
        ​ yield 表达式

        gen1 = (x for x in range(5))
        print(gen1)
        
        
        # 这是生成式展开为生成器的写法
        def fun1():
            for x in range(5):
                yield x*2
        
        
        gen1 = ((value, key)for key, value in {'name': 'xiaoming', 'age': 10}.items())
        
    3. 迭代器和生成器转换成其他的序列(转换成列表的实质是,遍历,然后将每个元素添加到列表中)

      list1 = list(gen1)
      # [生成式] -->   直接将生成式对应的生成器转换成列表
      list2 = [(value, key)for key, value in {'name': 'xiaoming', 'age': 10}.items()]
      
      # 练习:交换字典中的key, value的位置
      dict1 = {'a': 1, 'b': 2, 'c': 3}
      result = dict((x, y) for y, x in dict1.items())
      print(result)
      

    文件

    1. 数据本地化和数据持久化
      将数据以文件的形式存到计算机硬盘当中(程序中保存的数据当程序结束后会自动销毁)

    2. 怎么数据持久化(怎么将程序中的数据和本地文件中的数据关联)
      文件读写操作 - 读(获取文件中的内容) 写(将数据添加到文件中)

      文件操作的基本流程:打开文件->文件操作(读/写)->关闭文件

    3. 打开文件
      open(file, mode = 'r', encoding=None) ---> 以指定的模式打开指定文件并且返回被打开的文件对象

    说明:
    file -- 字符串,需要打开的文件的路径
    ​ 绝对路径 -- 文件在电脑上的全路径
    ​ 相对路径 -- 相对当前代码对应的文件目录
    ​ '致橡树.txt' './致橡树.txt'

    mode -- 字符串,文件的打开方式
    ​ r --> 以只读的方式打开,文本
    ​ w --> 以写的形式打开(覆盖),文本
    ​ a --> 以写的形式打开(追加),文本
    ​ rb/br --> 以只读的形式打开,二进制
    ​ wb/bw --> 以写的形式打开(覆盖),二进制
    ​ + --> 以读写的形式打开

    encoding -- 字符串,文件编码方式
    ​ utf-8:支持所有的语言
    ​ gbk:只支持英文
    注意: a.读写对应的编码要保持一致
    ​ b.非文本文件不能设置编码方式,例如:图片,视频,可执行文件
    ​ c.给他传值的时候要使用关键字参数
    ​ d.以二进制的形式打开文件,不能设置encoding

    注意:当以读的方式打开一个不存在文件,程序会报fileNotFindeError
    ​ 以写的方式打开一个不存在的文件,就会创建一个新的文件

    1. ======================写操作====================
      如果需要文件进行写操作,name文件必须以写的方式打开
      w --> 用新的内容覆盖原文件内容
      a --> 在原文件末尾添加新的内容
      f2 = open('致橡树.txt', 'a', encoding='utf-8')
      f2.write('郭锐是个大傻逼,大傻逼啊大傻逼\n')

      图片下载过程,骑牛图片二进制数据,将二进制写入本地文件

    2. 关闭文件 文件对象.close()

    3. 文件操作的简写方式

      """
      with open() as 文件对象:
          文件操作代码
      """
      

    相关文章

      网友评论

          本文标题:Day12 生成式、文件

          本文链接:https://www.haomeiwen.com/subject/glsbrqtx.html