python学习第九天:文件操作,函数

文件操作

+模式: r+t  w+t  a+t  r+b   w+b  a+b 

         可读可写,其他功能与人,r,w,a相同

f.seek(offset,whence) 文件指针移动    offest的单位为bytes   whence是参照物

f.seek(3,0)  whence默认值为0   0:文件开头开始  1:当前指针位置  2:参照末尾

强调:其中whence = 1 和 whence = 2 只能在b模式下使用,除非offest =0 是都可以

           f.seek(-2,2)当whence = 2 时,offset需要用负数表示

f.tell()每次统计都是从文件开头到当前指针所在位置

注:只有在t模式下的read(n),n才代表字符的个数,除此之外其他但凡涉及到文件指针的都已bytes为单位

f.truncate(9) 固定参照文件开头,9代表9bytes

修改文件:

方法一:先将原文件内容一次性读入内存,在内存修改完成后覆盖写回原文件

         缺点:文件过大的情况下会占用过多的内存空间

         优点:修改期间文件内容始终只有一份

with open('a.txt') as read_f:
data=read_f.read()    
data=data.replace('alex','SB') 
with open('a.txt') as write_f:
    write_f.write(data) 

方法二:以读的方式打开原文件,写的方式打开新文件,从原文件中循环读取每一行内容,         修改后写入新文件,然后删除原文件,把新文件名命名为原来的文件名

         缺点:修改期间文件内容有两份

         优点:内存中同一时间只有一行内容

import os
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
    for line in read_f:
        line=line.replace('alex','SB')
        write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

函数的应用

1.什么是函数?

         在程序中,函数就是具备某一功能的工具,函数的使用必须遵循先定义,后调用的原则

2.为何使用函数?

         不用函数的问题:

                  ①.程序冗长

                  ②.扩展性差

                  ③.可读性差

3.如何使用:先定义后使用

         def 函数名(参数,参数……):

                  ‘’’

                  功能描述

                  参数描述

                  return:返回值描述

                  ‘’’

                  代码块

                  return 返回值

4.定义:

         没有定义而直接引用的函数名,相当于引用一个不存在的变量名

         ①函数的定义阶段:不执行函数体代码,但会检测函数体的语法

         ②调用阶段:执行函数体代码

参数:函数体接收外部值的一个媒介

函数定义的三种形式:

1.无参数函数:在定义阶段,括号内没有参数

         注意:定义时无参,意味着调用时也无需传入参数

         应用:如果函数体代码逻辑不需要外部传参值时,用无参数函数

2.有参数函数:在函数定义时,括号内有参数

         注意:定义时有参,意味着调用时也需要传参

         应用:如果函数体代码逻辑需要外部传参值时,需要有参数函数

3.空函数:

         def func():

                  pass

         用于结构的构建,先搭好结构,后期再填代码

猜你喜欢

转载自www.cnblogs.com/luck-L/p/9139679.html