python全栈脱产第8天------文件操作可读可写模式、文件的指针移动、文件的修改、函数

一、可读可写模式:r+t  w+t  a+t(为原来的模式增加原本没有的功能,如r+t模式为可读可写模式)

二、文件内的指针移动

  seek关键字:1.第一个参数(offset)代表字节数

         2.第二个参数(whence)代表指针位置:0代表文件开头,1代表指针当前位置,2代表文件末尾

三、文件修改的两种方式:

  1.(1)将文件内容由硬盘全部读入内存

   (2)将内存中完成修改

   (3)将内存中修改后的结果覆盖写回到硬盘

  with open('a.txt',mode='rt',encoding='utf-8') as f:

    a=f.read()

  with open('a.txt',mode='wt',encoding='utf-8') as f:

    f.write(a.replace('alex','dsb'))

  优点:文件修改的过程中只有一份数据

  缺点:占用内存过多,不适合大文件

  2.(1)以读的方式打开源文件,以写的方式打开一个临时文件

   (2)从源文件中每读一样内容修改完毕后写入临时文件,直到源文件读取完毕

   (3)删掉源文件,将临时文件重命名为源文件名

  import os

  with open('a.txt',mode='rt',encoding='utf-8') as f_read,open('.a.txt.swap',mode='wt',encoding='utf-8') as f_write:

    for line in f_read:

      f_write.write(line.replace('alex','dsb'))

  os.remove('a.txt')

  os.rename('.a.txt.swap')

  优点:同一时刻在内存中只存在源文件的一行内容,不会过多的占用内存

  缺点:在文件修改的过程中会出现源文件与临时文件共存,硬盘上同一时刻会有两份数据,即在修改的过程中会过多的占用硬盘

四、函数

  定义:函数就是具备某一功能的工具

  原因:1.程序的组织结构不清晰,可读性差  2.代码冗余  3.可扩展性差

  用法:遵循的原则:先定义,后调用

    def 函数名(参数):

      代码块

      return 返回值

    函数:就相当于一个变量名,指向函数的内存地址  注意:函数的内存地址()就可以触发函数体代码的执行

    参数:参数是函数的调用者为函数体代码传值的媒介,在python中函数的参数无需声明类型

    代码块:就是函数体功能的具体实现

    return返回值:函数体代码运行的结果

  两个阶段:定义阶段:只检测语法,不执行代码  调用阶段:运行函数体代码

  无参函数定义:当函数体代码逻辑不依赖任何人传入的值就能执行,就不需要定义参数

  有参函数定义:当函数体代码逻辑依赖外部传入值时,必须定义参数用来接收外部传入的值

原文地址:https://www.cnblogs.com/zhouyi0316/p/9438948.html