美文网首页
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 生成式、文件

    生成式 什么是生成式生成式就是生成器的一种特殊写法 写法生成器 = (表达式 for 变量 in 序列) ==>...

  • day12生成式、文件操作

    一、生成式 1.什么是生成式 生成式就是生成器的一种特殊写法 2.写法 a. 生成器 = (表达式 for 变量 ...

  • 生成式、文件操作

    一、 1.什么是生成式 生成式就是生成器的一种特殊写法 2.写法 a.生成器 = (表达式 for 变量 in 序...

  • 2019-01-08 day12 生成式、文件操作

    01 recode 1. 递归函数(了解) a. 找临界值b. 找关系(f(n)和f(n-1))c. 用f(n-1...

  • 连接器 -- Scatter File & Linker

    @(嵌入式) [TOC] 源文件编译后生成 elf 格式的目标文件(各种.o), 与运行时库经过连接器处理后,生成...

  • day12 - 文件操作(总结)

    1.recode 1.1.生成式(生成式的结果就是一个生成器) 1.2.模块和包模块:一个py文件就是一个模块包:...

  • 列表生成式 和 生成器表达式 的区别

    通过1个例子说明列表生成式与生成器表达式的用法与区别。 如果想求出某个文件最长的行,用列表生成式的代码如下: 然而...

  • 关于java生成UTF-8编码格式文件的诡异问题

    原文地址 用java生成一个UTF-8文件(指定了utf-8格式了): 如果文件内容中没有中文内容,则生成的文件为...

  • 19-01-09recode

    day12总结文件操作,数据持久化 1.打开文件 -> 操作文件 -> 关闭文件文件对象 = open(...

  • cmake查看依赖

    使用嵌入式开发,我们解决问题的时候,常常需要只把源码进行预处理,或者让它生成汇编文件,而不是生成目标文件。可是当我...

网友评论

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

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